我們使用的是D3的例子是這樣的: https://bl.ocks.org/mbostock/raw/1341021/如何獲得在Chrome擴展內容腳本D3節點的數據
如果複製&下面的代碼粘貼到控制檯並運行,所有的界限數據將顯示在控制檯中。
var svgs = document.getElementsByTagName("svg");
for (var i = 0; i < svgs.length; i++) {
var babbies = svgs[i].getElementsByTagName("*");
for (var j = 0; j < babbies.length; j++) {
console.log(babbies[j].__data__);
}
}
不幸的是,如果我們在Chrome擴展的內容腳本使用相同的代碼,該數據的所有節點(babbies[j].__data__
)的都出現undefined
。我們已經運行了調試器,內容腳本中的節點babbies
看起來不錯。
所以我們做的內容腳本一些研究,並意識到內容腳本在an "isolated world" environment執行。由於這個原因,內容腳本似乎不能讀取D3節點的有界數據。
我們還嘗試通過this method將腳本注入頁面。但是,注入的腳本的行爲與頁面本身包含的行爲相同,並且未以任何方式連接到擴展。
我們想知道是否有任何方法可以訪問內容腳本中D3節點的有限數據或擴展代碼?
作品反向呢!調整代碼並從內容腳本發送消息到注入腳本,工作得很好!謝謝! – cdeng