【问题标题】:jQuery load works on Dreamweaver but not in browsersjQuery 加载适用于 Dreamweaver,但不适用于浏览器
【发布时间】:2013-11-27 08:42:48
【问题描述】:

我使用了 .load() 函数。它适用于 Dreamweaver 的 Live View,但不适用于 Firefox、Chrome 或 IE。

这是我的 HTML 部分:

<script src="js/jquery.js"></script>
<script src="tabsPull.js"></script>
<h1>Homework Assignments</h1>
<ul id="button-menu">
    <li id="a1"><input class="no" type="button" onClick="ChangeActive(1)" value="Mon"></li>
    <li id="a2"><input class="no" type="button" onClick="ChangeActive(2)" value="Tues/Wed"></li>
    <li id="a3"><input c    lass="no" type="button" onClick="ChangeActive(3)" value="Thurs/Fri"></li>
</ul>
<div id="tabInner" class="tabInner">

</div>

ChangeActive() 位于单独的 JS 文件中(tabsPull.js):

var active = 0
function ChangeActive(active){
    if (active==1) {
        document.getElementById("a1").className = "active";
        document.getElementById("a2").className = "";
        document.getElementById("a3").className = "";
        $('#tabInner').load('http://axoplanner.weebly.com/monday.html #content');
    } else if (active==2) {
        document.getElementById("a2").className = "active";
        document.getElementById("a1").className = "";
        document.getElementById("a3").className = "";
        $('#tabInner').load('http://axoplanner.weebly.com/tuesdaywednesday.html #content');
    } else if (active==3) {
        document.getElementById("a3").className = "active";
        document.getElementById("a1").className = "";
        document.getElementById("a2").className = "";
        $('#tabInner').load('http://axoplanner.weebly.com/thursdayfriday.html #content');
    }
}

有什么问题?它可以在 DW 中使用,但为什么不能在浏览器中使用???我从 Weebly 中提取东西的原因是因为我需要其他人来更新它,而 Weebly 更容易。

【问题讨论】:

  • 很有可能,如果您查看浏览器中的错误控制台,它会报告一条错误消息,您可以将其插入搜索引擎并发现您违反了同源策略。您需要进行一些基本调试(第一步是查看错误消息),而不仅仅是报告“它不起作用”。
  • @Quentin 没有相关错误,然后我点击一个按钮,弹出这个:[16:21:48.508] GET axoplanner.weebly.com/monday.html [HTTP/1.1 200 OK 182ms]
  • @Quentin 你说的同源策略是什么意思?
  • 有办法解决这个问题吗?我听说过一些关于 CORS 的东西,但我仍然对如何使用它感到困惑。

标签: javascript jquery html cross-browser dreamweaver


【解决方案1】:

请参阅 jQUery 文档中的 this page。

来自文档:

“由于浏览器安全限制,大多数“Ajax”请求都受制于同源策略;该请求无法成功地从不同的域、子域或协议中检索数据。”

因此,DreamWeaver 必须没有大多数浏览器所具有的安全限制,因此它可以在 DreamWeaver 中运行。但在大多数浏览器中,绝对路径不能作为 .load() 的参数。

【讨论】:

  • 有办法解决这个问题吗?我听说过一些关于 CORS 的东西,但我仍然对如何使用它感到困惑。
  • @BrandonNguyen 是的,有办法解决它。我不知道 CORS,但这里有一个关于如何使用 PHP 来解决它的讨论:stackoverflow.com/questions/14999573/…
猜你喜欢
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
相关资源
最近更新 更多