3

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

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

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

4

4 回答 4

3

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

于 2013-03-23T16:59:44.807 回答
1

每个页面加载都会擦除所有以前的 JavaScript,所以你不能这样做。您最好的机会是使用 ajax 加载新页面而不卸载当前页面。但是,由于安全限制,这只有在两个页面都来自同一个域时才有效。

于 2013-03-23T16:57:57.857 回答
1

这是因为一旦 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;
    }  
} 
于 2013-03-23T16:58:25.830 回答
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>
于 2021-05-08T12:59:39.893 回答