更改窗口位置,然后等待窗口加载?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改窗口位置,然后等待窗口加载?相关的知识,希望对你有一定的参考价值。

忍受我,我是javascript的完全菜鸟:P。所以,我想要做的是使用一个函数来加载一个网页。并且,在完成该功能之后,我希望能够获取页面上某个元素的html代码。到目前为止,这是我的代码:

function change(){
    window.location = "www.aWebPage.com"
    window.onload = function() {
     return document.ID_HERE.outerHTML;
    }   
}

无论出于何种原因,HTML代码的返回都不起作用,但重定向确实如此。我是否正确地将值返回给函数?还有另一种方法可以使用仅在窗口重定向后才执行的多个函数吗?

答案

每个页面加载都会擦除所有以前的JavaScript,因此您无法执行此操作。您最好的机会是使用ajax加载新页面而不卸载当前页面。但是,只有当两个页面来自同一个域时,这才会起作用,因为security restrictions

另一答案

window.location之后的代码将不会被执行,因为文档不再存在。

另一答案

这是因为一旦javascript读取window.location,页面就会刷新,并且所有后续代码都不会被执行。为了解决这个问题,我们使用哈希标记和查询字符串。例如,您可以将位置更改为www.awebpage.com#id。然后使用javascript检测查询字符串中的“#id”并执行代码。我在下面写了一个示例:

function change(id){
    window.location = "www.aWebPage.com#id=" + id;
}

window.onload = function() {
    var hash = window.location.hash;
    if (hash.length > 0)
    {
    var id = hash.replace('#id=','');
    return document.id.outerHTML;
    }  
} 

以上是关于更改窗口位置,然后等待窗口加载?的主要内容,如果未能解决你的问题,请参考以下文章

adobe cc 系列产品更改默认安装路径方法

jQuery位置,仅在窗口宽度发生变化时重新加载

更改窗口位置 Jquery

在片段更改时恢复窗口插图

Java Selenium 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素

GMSMarker 信息窗口内容(片段)未更新