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

问题描述 投票:1回答:3

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

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

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

javascript function
3个回答
0
投票

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


0
投票

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


0
投票

这是因为一旦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;
    }  
} 
© www.soinside.com 2019 - 2024. All rights reserved.