什么时候是 window.location.href = url 被执行
When is window.location.href = url gets executed?
对于以下代码
window.location.href = url;
$(window.document.body).append(compiledTemplate);
我想在现有窗口中$(window.document.body).append(compiledTemplate);
to be appended on the new Page which will get opened, but it appends the
编译模板',然后加载指定的网址
有没有办法做到这一点。
?注意:要传递的 url 已经定义了其表单加载事件。我不想覆盖它。
什么时候执行window.location.href = url?
非常接近立即。它告诉浏览器开始加载新页面的过程。当前页面及其上的代码将继续运行,直到新页面开始加载。更多内容见下文。
我希望
$(window.document.body).append(compiledTemplate);
附加到将打开的新页面上。
你不能。当前页中的代码无法作用于下一页。若要在下一页上执行操作,必须在该页面中具有代码。
最好的办法是让当前页面以其他方式向新页面提供信息:
- 通过查询字符串参数
- 通过本地存储或会话存储
- 通过饼干(漂白)
。然后让新页面上的代码追加内容。
如果您这样做是为了响应用户生成的事件,则可以改为执行以下操作:
var wnd = window.open(url);
$(wnd).load(function() {
$(this).append(compiledTemplate);
});
。但它会在新页面(可能是新选项卡)中打开 URL 并使当前窗口保持打开状态,并且它仅适用于来自同一来源的页面。
例如,如果你在页面上有这个:实时示例
<input type="button" id="the-button" value="Click">
<script>
(function() {
"use strict";
$("#the-button").click(function() {
var counter = 1;
location.href = "http://stackoverflow.com";
$("<p>Set, counter = " + counter + "</p>").appendTo(document.body);
setInterval(function() {
++counter;
$("<p>Counter = " + counter + "</p>").appendTo(document.body);
}, 50);
});
})();
</script>
当您单击该按钮时,您会看到行设置运行后的代码location.href
显示"设置,计数器= 1",然后可能还有几行"计数器= x",然后最终页面将被Stack Overflow替换。此时,旧页面的代码已终止。它无法对新页面执行任何操作。
相关文章:
- iFrame url更改时执行函数
- 每次 url 哈希更改时执行 if 语句
- PhantomJS执行搜索并抓取URL
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 如何逐个执行url请求而不导致堆栈溢出?(Node.JS)
- jQuery:$.ajax() 重定向到其 URL 表单操作参数,而不是对表单操作执行 AJAX 请求
- 当 ajax url 是 '/' 时,会执行什么
- 什么时候是 window.location.href = url 被执行
- 如何以编程方式在URL上执行javascript
- 如何在单击按钮并执行PHP代码后自动打开URL
- 如何使用jQuery检查图像URL是否为空并执行某些操作
- 在文本框中输入 URL 时执行 JavaScript 事件
- 根据 URL 执行某些 JavaScript
- 根据 url 执行 javascript 函数
- redux简单路由器-根据URL执行操作
- 根据URL执行不同的UI脚本
- 如何在UIWebView中只对某些url执行javascript
- 如何在您的网站的url执行脚本
- 使用javascript函数在url执行下拉选项/按钮
- 在 Node.js 中对来自 AWS S3 getSignedUrl 的 URL 执行获取请求时出现 Signature