2013-03-23 128 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之後的代碼將不會被執行,因爲文檔不再存在。