【问题标题】:Load html with javascript issue in safari browser在 Safari 浏览器中加载带有 javascript 问题的 html
【发布时间】:2016-08-25 20:19:44
【问题描述】:

我整天都在为这个问题苦苦挣扎,所以也许有人可以帮忙。

我想在单击按钮时将包含 javascript/jquery 代码和普通 html 的 settings.php 页面加载到 index.php 中。

这里是sn-ps的代码:

索引.php

<head>
<script type="text/javascript">
        function loadSettingsPage (){
        $('#myResults').load('settings.php', function (){ });
        }
</script>
</head>

设置.php

<div class="tabsWrapper">
<ul class="tabs">
    <li data="sections" onclick="setTab('sections')">Product categories</li>
    <li data="suppliers" onclick="setTab('suppliers')">Suppliers</li>
</ul>
</div>
...
<script type="text/javascript">
function setTab(currentTab = "sections"){
//some code goes here
};

$(document).ready(function (){
//document ready code goes here with click events
}
</script>

问题是,如何将 Settings.php 文件加载/包含到 index.php 文件中,以便在 $(document).ready 函数中包含点击事件的所有 javascript 代码也可以在 safari 浏览器中执行。现在它可以完美地与除 safari 之外的所有浏览器配合使用。

【问题讨论】:

  • 您可以在 HTML myResults 元素中使用include('settings.php')
  • 不是一个选项,我想动态加载 settings.php。我可以加载它,隐藏然后出现 onclick,但是我有一堆其他文件应该根据点击包含/删除到 myResults div 中。

标签: javascript jquery html safari


【解决方案1】:

您正在尝试使用默认参数的 EcmaScript 6 功能。根据MDN,这尚未在 Safari、Opera 或 Internet Explorer 中实现。

使用显式检查参数是否设置:

function setTab(currentTab) {
    currentTab = currentTab || "sections";
    // some code goes here
}

在使用新的 ES6 功能时需要非常小心,其中许多功能尚未在 Safari 中实现,并且永远不会在旧 IE 版本中实现。

【讨论】:

  • 我写的是同样的答案,只是不太好,快点删除按钮加1。
  • 好的,我会解决这个问题,但主要问题仍然存在
  • 这对我来说似乎是主要问题。您遇到语法错误,因此代码没有运行。你还在报错吗? Javascript 控制台中的内容是什么?
  • 我的天啊,我听到了错误和警告的声音,要花很多时间来修复它们((为什么 safari 的行为如此愚蠢且与所有其他浏览器不同
  • 您可能应该为 caniuse.com 添加书签,以查看浏览器之间不兼容的功能。
猜你喜欢
  • 2016-06-25
  • 2021-01-07
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 2013-12-13
相关资源
最近更新 更多