gpt4 book ai didi

javascript - AJAX 上的浏览​​器在响应中使用脚本标记刷新

转载 作者:行者123 更新时间:2023-11-29 10:25:51 25 4
gpt4 key购买 nike

我在使用 jQuery AJAX 调用时遇到了一些问题。当我请求一个没有 javascript 的页面时,我的代码工作正常,但是当我的代码中有脚本标签时,事情开始变得奇怪。

似乎任何引用外部 URL 的脚本标记都会导致浏览器重定向。在 Firefox 中,页面变为空白。在 Safari 中,页面会清除并加载 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 的副本并将所有出现的 document.write 替换为 jquery.html,它似乎工作正常。我(显然)是一个 js 菜鸟。这是 document.write 的预期行为吗?当我在页面加载中包含脚本时,为什么它不执行此操作?

最佳答案

从 html 内容中单独加载脚本,可以使用 $.getScript( )。

关于javascript - AJAX 上的浏览​​器在响应中使用脚本标记刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/948635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com