2013-03-23 97 views
0

熊与我,我是一个完整的菜鸟Javascript:P。所以,我想要做的是使用一个函数来加载一个网页。而且,在完成该功能后,我希望能够抓取页面上某个元素的HTML代码。这是我的代码到目前为止:更改窗口位置,然后等待窗口加载?

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

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

回答

0

每页加载都会抹掉所有以前的JavaScript,所以你不能这样做。您最好的机会是使用ajax加载新页面而不卸载当前的页面。但是,只有当这两个页面来自同一个域时,这将仅适用于security restrictions

+0

我可以使用一个函数来检查当前URL是否与我想加载的URL相匹配吗?然后,我可以调用另一个函数在加载了文档HTML的页面上? – 2013-03-23 17:15:06

+0

是的,作为旋涡建议,您可以查看当前的URL'window.location.href' – bfavaretto 2013-03-23 17:16:16

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; 
    } 
} 
+0

请问:如果(window.location.href.match(/ \ anywebsite.com/)){ 回报 document.ctl00_plnMain_rptAssigmnetsByCourse_ctl00_dgCourseAssignments。 outerHTML; }是否有效的Javascript? – 2013-03-23 17:37:58

+0

是或者你可以使用if(window.location.hash =='#test') – Vortex 2013-03-23 17:43:02

+0

#test是什么意思?对不起,我不知道任何关于Javascript D = – 2013-03-23 18:03:13

0

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