我遇到了一個內容腳本的奇怪問題。內容腳本在清單中定義爲"run_at" : "document_end"
。加載頁面後,腳本會將對象標記插入頁面(如果具有預定義標識的標記尚不存在),並在其中設置一些屬性,例如type
,width
,height
,innerHTML
和title
。所有的工作都很好。從Chrome的內容腳本訪問DOM對象屬性
function checkForObject()
{
var obj = document.getElementById("unique_id");
if(obj == null)
{
var d = document.createElement("object");
d.id = "unique_id";
d.width = "1";
d.height = "1";
d.type = "application/x-y-z";
d.title = "1000";
d.style.position = "absolute";
d.style.left = "0px";
d.style.top = "0px";
d.style.zIndex = "1";
document.getElementsByTagName("body")[0].appendChild(d);
}
}
checkForObject();
我看到在網頁的HTML代碼中的新對象,在其屬性正確的價值觀。
一段時間後,我需要閱讀同一內容腳本中的對象的title
屬性。代碼很簡單:
function ReadTitle()
{
var obj = document.getElementById("unique_id");
var value = obj.title; // breakpoint
console.log(value);
// TODO: want to use proper title value here
}
功能是從background.html頁面調用:
chrome.tabs.onActivated.addListener(
function(info)
{
chrome.tabs.executeScript(info.tabId, {code: 'setTimeout(ReadTitle, 250);'});
});
不幸的是,在ReadTitle
我越來越不是我所期望的。取而代之的是title
的電流值的我看到的記錄值是:
function title() { [native code] }
如果我設置爲由// breakpoint
註釋標記,我在守望,所有的對象屬性,包括title
是正確的看行斷點。儘管如此,變量value
獲得了上述的描述性字符串。
顯然,我錯過了一些簡單的事情,但我無法弄清楚。
答案。這是npapi插件中的一個錯誤,它包含使用類型的對象。對於所有閱讀過有意提供幫助的問題,我表示歉意。
這甚至沒有足夠的信息來重現問題。我的腳本設置和獲取屬性,包括'title'整天。 (1)**設置**標題的代碼是什麼? (2)什麼是目標頁面(確切的URL最好)? (3)您使用的是哪個版本的Chrome? (4)什麼操作系統? (5)鏈接到或發佈完整的腳本。 –
@BrockAdams,目標頁面不同。該腳本旨在處理所有頁面(匹配清單中的「*:// */*」)。我現在添加更多代碼。 – Stan