忍受我,我是Javascript的完全菜鸟:P。所以,我想要做的是使用一个函数来加载一个网页。并且,在完成该功能之后,我希望能够获取页面上某个元素的HTML代码。到目前为止,这是我的代码:
function change(){
window.location = "www.aWebPage.com"
window.onload = function() {
return document.ID_HERE.outerHTML;
}
}
无论出于何种原因,HTML代码的返回都不起作用,但重定向会起作用。我是否正确地将值返回给函数?还有另一种方法可以使用仅在窗口重定向后才执行的多个函数吗?
答案 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之后的代码将不会被执行,因为文档不再存在。