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

时间:2013-03-23 16:51:18

标签: javascript function

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

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

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

4 个答案:

答案 0 :(得分:1)

在 html 文件中编写脚本并在包含 jquery js 文件后添加它。

将下面的代码保存在一个js文件中,例如-test.js

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

和在 html-

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="/test.js"></script>
<script>
      var hash = window.location.hash;
      if (hash.length > 0) {
      var id = hash.replace('#id=','');
      return document.id.outerHTML;
      }  
</script>

答案 1 :(得分:0)

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

,这才有效

答案 2 :(得分: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;
    }  
} 

答案 3 :(得分:0)

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