2011-06-16 78 views
0

我試圖遵循DOM中某個類 (f_foto)中包含的所有鏈接,請按照它們並檢查結果。 I 可以使用XMLHttp.Request,但該站點只返回HTTP文本,而不是XML (或至少.responseXML爲空)。我試圖堅持檢查由 文本產生的DOM,而不是刮掉字符串,所以我打開了一個新窗口,其中包含 f_foto類中的鏈接。窗口打開好,但之後我無法訪問 新窗口。請注意,沒有必要使用新窗口,但我不知道如何將文本文件轉換爲任何其他方式的DOM。我可以結合這兩個陳述嗎?

在下面的代碼窗口中打開一個新的窗口,但在未來的聲明中,這會改變背景顏色爲 黑色,返回錯誤測試 理論「不能設置屬性‘BGCOLOR’的 不確定的。」在這裏,我用什麼操縱 detailWindow並不重要 - 它總是未定義的。根據我所做的研究 ,這必須與這個腳本位於 父頁面而不是在打開的頁面中有關。那麼我怎樣才能控制 這個新打開的窗口?我想是有

document.getElementById("tab_content"). 

var detailWin; 
for (var i = 0; i<searchResult.length; ++i) 
{ 
     detailWin=window.open(profileLinks[i], "Detail Window", 
       "width=700, height=650, resizable=1, toolbar=0, location=0, 
status=0, menubar=0, directories=0, scrollbars=yes, top=0, left=0"); 
     detailWin.bgColor="black" 
} 

回答

0

也許我誤解你的問題,但它聽起來像你說你需要這個被轉換了一堆由指定的URL將DOM可以操作都在一個地方任意的HTML頁面;您實際上不需要向用戶顯示彈出窗口。

如果我的理解是正確的,你可以使用jQuery的加載函數。

如果你的網頁上有一個隨機div(可能是將它設置爲display:none),你可以使用它將url的內容加載到該div中,然後你可以操縱你想要的任何東西在該div下的DOM中,就好像該內容總是在那裏一樣。

<div id='someRandomDiv'></div> 
<script type="text/javascript"> 
    loadIsDone = function() { 
     //do stuff with document.getElementById('someRandomDiv').childNodes; 
    }; 

    $('#someRandomDiv').load('http://www.url.com', loadIsDone); 
</script> 
+0

yes,我一直在想,但我不知道該怎麼做,我明白你可以在一個加載的頁面中創建一個div,並隱藏它,並把你想要的任何東西放在那裏,但如何做到這一點的細節是一個大學習如何處理DOM元素的學習曲線,我認爲你們大多數人都認爲它們是首要的元素。(!! :))yucky雙關語!你能推薦一些代碼片段嗎?這是一個Chrome擴展btw。是jQuery可用於Chrome擴展嗎? – Jerome 2011-06-16 19:47:54

+0

jQuery是一個JavaScript庫。您可以從jQuery.com下載並從您的站點託管它,只需添加指向谷歌版本的腳本標記STS。例如:或:至於將其掛接到Chrome擴展中,我不太確定 - 我認爲這只是一個網頁。 – DrShaffopolis 2011-06-16 20:19:49

1

假設你的新窗口中的結果與Same-origin policy規定,你應該能夠訪問彈出正常人一樣。基本上這意味着彈出框必須位於相同的協議和主機上。

window.open返回值是彈出窗口的window對象,所以使你的代碼工作,你需要設置窗口的documentbgColor財產。

document.getElementById("tab_content"). 

var detailWin; 
for (var i = 0; i<searchResult.length; ++i) 
{ 
     detailWin=window.open(profileLinks[i], "Detail Window", 
       "width=700, height=650, resizable=1, toolbar=0, location=0, 
status=0, menubar=0, directories=0, scrollbars=yes, top=0, left=0"); 
     detailWin.document.bgColor="black" 
} 
+0

這沒有幫助。現在它返回一個錯誤 - 「未捕獲的類型錯誤」無法讀取未定義的屬性「文檔」 – Jerome 2011-06-16 17:58:53

+0

任何引用detailWin的東西都會返回undefined,但是每次重複循環時窗口都會打開並顯示所需的html – Jerome 2011-06-16 18:07:22