Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面加载后如何更改内容(JS)?_Javascript_Load_Timeout - Fatal编程技术网

Javascript 页面加载后如何更改内容(JS)?

Javascript 页面加载后如何更改内容(JS)?,javascript,load,timeout,Javascript,Load,Timeout,我希望在加载页面后运行javascript,如下面的示例所示,延迟6秒。页面加载后,JS的其余部分将丢失。。。 你知道在页面加载后如何在不点击按钮的情况下更改内容吗 javascript:window.location = "http://example.com"; setTimeout(function() { document.getElementById('lightbox').style.display = 'none'; }, 6000); 我不明白你在说什么。JS丢了?请

我希望在加载页面后运行javascript,如下面的示例所示,延迟6秒。页面加载后,JS的其余部分将丢失。。。 你知道在页面加载后如何在不点击按钮的情况下更改内容吗

javascript:window.location = "http://example.com"; 
setTimeout(function() {
    document.getElementById('lightbox').style.display = 'none';
}, 6000);

我不明白你在说什么。JS丢了?请说清楚一点。
我认为您所说的是在DOM就绪后运行的jquery函数。或者在另一种情况下,尝试使用window.onload函数。

我不明白你在说什么。JS丢了?请说清楚一点。
我认为您所说的是在DOM就绪后运行的jquery函数。或者在另一种情况下,尝试使用window.onload函数。

这应该可以完成以下任务:

$(window).bind('load', function() {
// your code here
});
然后只需使用.delay6000将延迟添加到添加的代码中


插入的代码仅在页面完全加载时运行。

这应该可以完成以下工作:

$(window).bind('load', function() {
// your code here
});
然后只需使用.delay6000将延迟添加到添加的代码中


插入的代码仅在页面完全加载时运行。

您的示例显示您首先重定向,然后试图隐藏lightbox。此脚本将无法工作,因为您正在将浏览器重定向到另一个站点,然后lightbox将被隐藏


简言之,如果将用户重定向到另一个URL或甚至同一个URL,则不能让上一页的Javascript操纵下一页的DOM。只有“在当前打开的页面上”的Javascript才能操作当前打开的页面,而不能操作其他页面。

您的示例显示您首先重定向,然后试图隐藏lightbox。此脚本将无法工作,因为您正在将浏览器重定向到另一个站点,然后lightbox将被隐藏


简言之,如果将用户重定向到另一个URL或甚至同一个URL,则不能让上一页的Javascript操纵下一页的DOM。只有“在当前打开的页面上”的Javascript才能操作当前打开的页面,而不能操作其他页面。

一旦设置了window.location,在浏览器加载新页面之前,将卸载原始页面。这意味着您的脚本将在新页面开始加载之前消失,因此无法再修改新的HTML

这种行为是浏览器安全模型固有的。如果没有它,您可以将任何JavaScript注入您选择的任何网站,这将是一个巨大的安全风险。您需要的是用于跨站点脚本的所谓XSS,这是由浏览器为相同的原始策略应用所谓的SOP所阻止的

有一些常见的方法可以安全地绕过此限制:

设置一个代理为JavaScript和原始站点提供服务。这样,您的脚本和原始站点都来自同一个域,并且满足浏览器的相同原始策略。您可以在iframe中运行原始站点,自定义脚本占据顶层窗口。或者,您可以在通过代理检索脚本时将其注入HTML

将脚本作为浏览器加载项或用户脚本运行。如果您选择这样做,用户将必须特别授予您的脚本在本地运行的权限,并提升权限。Greasemonkey在几年前普及了Firefox的客户端脚本,但最近它们似乎失去了势头

请站点所有者包含您的脚本。我怀疑这对你的情况是一个有效的选择。但如果这是一个有效的选择,那么它肯定是最简单的选择

请用户在加载站点后运行脚本。这一条可能对您也无效,但如果有效,它将再次成为一个非常简单的解决方案


设置window.location后,在浏览器加载新页面之前,将卸载原始页面。这意味着您的脚本将在新页面开始加载之前消失,因此无法再修改新的HTML

这种行为是浏览器安全模型固有的。如果没有它,您可以将任何JavaScript注入您选择的任何网站,这将是一个巨大的安全风险。您需要的是用于跨站点脚本的所谓XSS,这是由浏览器为相同的原始策略应用所谓的SOP所阻止的

有一些常见的方法可以安全地绕过此限制:

设置一个代理为JavaScript和原始站点提供服务。这样,您的脚本和原始站点都来自同一个域,并且满足浏览器的相同原始策略。您可以在iframe中运行原始站点,自定义脚本占据顶层窗口。或者,您可以在通过代理检索脚本时将其注入HTML

将脚本作为浏览器加载项或用户脚本运行。如果您选择这样做,用户将必须特别授予您的脚本在本地运行的权限,并提升权限。格里斯莫 nkey在几年前推广了Firefox的客户端脚本,但最近它们似乎失去了势头

请站点所有者包含您的脚本。我怀疑这对你的情况是一个有效的选择。但如果这是一个有效的选择,那么它肯定是最简单的选择

请用户在加载站点后运行脚本。这一条可能对您也无效,但如果有效,它将再次成为一个非常简单的解决方案


在谷歌上查找dom操作。我做不到。我有6个多小时的时间搜索解决方案,这是我获得帮助的最后希望。是否要将脚本添加到加载了window.location的页面?我想这个页面不是你的?在谷歌上查找dom操作。我做不到。我有6个多小时的时间搜索解决方案,这是我获得帮助的最后希望。是否要将脚本添加到加载了window.location的页面?我假设这个页面不是你的?对不起,我没有让自己干净英语不是我的主要语言,我尽我所能的代码将运行,直到窗口加载,就是这样。其余的将不会在新页面上运行。自己试试-javascript:window.location=;setTimeoutfunction{alert'Loaded complete';},0;对不起,我没有使自己干净英语不是我的主要语言,我尽我所能的代码将运行,直到窗口加载,这就是它。其余的将不会在新页面上运行。自己试试-javascript:window.location=;setTimeoutfunction{alert'Loaded complete';},0;是的,这就是问题所在。我试图找到一个解决办法,但似乎不可能?是的,这是不可能的。如果您还可以访问被重定向到的站点,那么您可以在重定向时发送特定的GET变量或其他内容,然后让目标站点上的JavaScript相应地执行操作。但总而言之,是的,控制另一个页面的Javascript是不可能的。JavaScript包含在它加载的页面中。是的,这就是问题所在。我试图找到一个解决办法,但似乎不可能?是的,这是不可能的。如果您还可以访问被重定向到的站点,那么您可以在重定向时发送特定的GET变量或其他内容,然后让目标站点上的JavaScript相应地执行操作。但总而言之,是的,控制另一个页面的Javascript是不可能的。JavaScript包含在它加载的页面中。