微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-浏览器刷新AJAX,响应中包含脚本标签

我在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();
    });
  });
}

walkscore.html-如顶部代码块所示

在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] 举报,一经查实,本站将立刻删除。

相关推荐