3
我正在爲歌劇製作一個用戶腳本,而歌劇不支持DOMSubtreeModified, 有沒有其他方法可以修改子樹?我可以使用什麼來代替DOMSubtreeModified?
注:我只在javascript中尋找解決方案。 (不jQuery或任何JavaScript庫)
謝謝。
我正在爲歌劇製作一個用戶腳本,而歌劇不支持DOMSubtreeModified, 有沒有其他方法可以修改子樹?我可以使用什麼來代替DOMSubtreeModified?
注:我只在javascript中尋找解決方案。 (不jQuery或任何JavaScript庫)
謝謝。
定位您真正關心的節點,然後使用間隔計時器檢查更改。
的關鍵是選擇感興趣的節點,例如給定:
<div id="content"><p class="author"> ... </p>
...
</div>
也許你想要的「作者」的節點。
您將在計時器內使用querySelectorAll("#content p.author")
進行掃描。
像這樣的事情僞代碼:
setInterval (MyNodeCheckFunc, 500);
function MyNodeCheckFunc()
{
var newNodeList = [];
this.oldNodeList = this.oldNodeList || [];
var targetNodes = document.querySelectorAll ('VALID CSS-STYLE SELECTOR');
if (targetNodes && targetNodes.length > 0)
{
/*--- Found target node(s). Go through each and act if they
are new.
*/
for (var J = targetNodes.length - 1; J >= 0; --J)
{
var targNode = targetNodes[J];
newNodeList.push (targNode);
if (! targNode.weHaveProcessed)
{
targNode.weHaveProcessed = true;
//// DO STUFF FOR NEW NODE.
}
}
}
/*/// HERE, COMPARE newNodeList TO oldNodeList.
1) If an item is in oldNodeList, but not in newNodeList,
do any DELETED NODE action.
2) If an item is in a different order from oldNodeList
to newNodeList, do any MOVED NODE action.
*/
this.oldNodeList = newNodeList;
}
多大比例的用戶的實際使用Opera?考慮這個問題:它真的值得嗎? –