swdyh

AutoPagerizeをFirefox3で動かそうとしたときにつまったポイント

2007-12-19 19:48:54

Greasemonkeyスクリプトを書くひとはこのへんを注意するといいと思います。
ほとんどDOM関連なのでGreasemonkeyに限った話じゃないかも。

htmlDoc.documentElement.appendChild(fragment)

htmlDoc.documentElement.appendChild(htmlDoc.importNode(fragment, true))

fragmentがhtmlDocに属していなかったので、htmlDocにimportNodeしてからappendChildするようにした。
参考: Textノードを追加できない - DOSEI日記 http://d.hatena.ne.jp/DOSEI/20071013/p1

var node = node || document
var nodesSnapshot = document.evaluate(xpath, node, null,
    XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)

var node = node || document
var doc = node.ownerDocument ? node.ownerDocument : node
var nodesSnapshot = doc.evaluate(xpath, node, null,
    XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)

第2引数のnodeのownerDocumentを確認して、それが取れた場合はそれのevaluateを使うようにした。