2012-08-24 91 views
1

我試圖加載iframe中的iframe.html,並將該iframe添加到我的Chrome擴展中當前頁面的DOM中。我已經這樣做了,我可以處理點擊事件,獲取框架元素值(輸入,選擇框)。一切都很好,直到這裏。現在的問題是,我無法修改iframe.html中的內容,只要我將其插入到DOM中(更具體地說,我在iframe.html中有一個輸入框,它被附加到DOM上,值爲「XXXX」,現在當用戶單擊我的擴展的上下文菜單時,我想將其更改爲「YYYY」)。從Chrome擴展中讀取iframe內容

我試圖在我的content.js但無濟於事使用

$('#iframe_id').contents().find('input#input_id').val('YYYY') 
(or) 
window.frames['iframe_id'].document.getElementId('input_id').value 

獲得輸入框的值。

console.log($('#iframe_id')) 

打印控制檯中的iframe對象,但無法獲取iframe文檔內容。這是獲取/修改由Chrome擴展插入的iframe內容的正確方法嗎?或者我在這裏丟失了鉻的東西* APIs

任何關於如何解決這個問題的指針會更有幫助。

TIA, Jagadeesh

+0

爲什麼要使用iframe?基於給定的信息,這似乎使您的解決方案複雜化。 –

+0

你會建議我做什麼?關於此的一些指針 – Jagadeesh

+0

您試圖在iframe中提取什麼內容?也許你可以用另一種方式獲取數據。處理iframe是一件痛苦的事情。 –

回答

0

正如Mike Grace所說,我已經插入了html而不是iframe,並且構建了可以在任何網頁中工作的css。從長遠來看,這將是一個更好的方法。

0

我相信你有問題,因爲iframe和頂級頁面的域名和協議不匹配。這是一個頁面安全限制。如果這確實描述了您的問題,則可以使用iframe postMessage API解決限制問題。

+0

我不認爲這應該是鉻擴展的問題,因爲我已經在manifest.json文件中獲得了跨源許可權。更多在這裏http://developer.chrome.com/extensions/xhr.html – Jagadeesh