我在jQuery AJAX调用中遇到一些问题.当我请求其中没有javascript的页面时,我的代码工作正常,但是当我的代码中包含脚本标签时,事情开始变得怪异.
似乎任何引用外部URL的脚本标签都会导致浏览器重定向.在firefox中,页面变为空白.在野生动物园中,该页面会清除并加载AJAX响应的内容.在两种浏览器中,URL均不变.
具体说明我的问题;我有一个标签控件,试图在其中嵌入walkscore小部件.由于它在客户端非常繁琐,因此我只想在用户单击其中的选项卡后才真正加载它.walkscore AJAX页面如下所示:
<script type="text/javascript">
var ws_address = "1 Market St, San Francisco";
var ws_width = "500";
</script>
<script type="text/javascript" src="http://www.walkscore.com/tile/show-tile.PHP?wsid=MY_WSID">
</script>
对引用AJAX调用上的外部站点的脚本标签有一些限制吗?有什么好办法解决吗?
-编辑-
好吧,我已经玩了一段时间,并将问题缩小了一点.让我尝试同时给出更好的解释:
我有两个文件,index.html和walkscore.html
index.html
function widget() {
var widget = $('#walkscore');
$.get('/walkscore.html', function(data) {
$('#loading').slideUp(function() {
widget.html(data);
loaded[name] = true;
widget.slideDown();
});
});
}
在index.html中,我有一个调用小部件函数的链接.每当我单击此链接时,整个页面都会被js文件的输出替换.无论js文件来自哪个域,都会发生这种情况.这似乎只发生在其中具有document.write的js文件中.当我使用$.getScript函数时,即使它在index.html中,其行为也完全相同.
-编辑-
似乎它与document.write有关.我制作了walkscore javascript的副本,并用jquery.html替换了所有出现的document.write,并且看来工作正常.我(显然)是js新手.这是document.write的预期行为吗?当我在页面加载中包含脚本时,为什么它不这样做?
解决方法:
与html内容分开加载脚本,可以使用$.getScript().
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。