Firefox3beta4とAutoPagerize0.0.24で起きる問題の修正patch
よくわかんないけどp.innerHTMLに代入したときに中にbodyのinnerHTMLが全部入るみたいなへんなことになってた。Twitter / みずも: AutoPagerizeのせいというよりはグリースモンキーのせいだな とも書かれてるけど、原因は調べてない。なんとなくinnerHTML使わないでDOMで書き直したら正しく動いた。
追記
id:flagmeisterさんにrange.createContextualFragmentとinnerHTMLが怪しいって教えていただきました。
ネームスペース付きで操作するの、やりかたしらないのでまちがってたらすいません。
はじめsetAttributeNS(HTML_NAMESPACE, ...)にしたらなんかリンクになってくれなかったのでsetAttributeに変えました。
--- autopagerize.user.orig.js 2008-03-11 20:04:34.000000000 +0900
+++ autopagerize.user.js 2008-03-11 20:03:47.000000000 +0900
@@ -273,8 +273,14 @@
var self = this
this.insertPoint.parentNode.insertBefore(hr, this.insertPoint)
this.insertPoint.parentNode.insertBefore(p, this.insertPoint)
- p.innerHTML = 'page: <a class="autopagerize_link" href="' +
- this.requestURL + '">' + (++this.pageNum) + '</a>'
+ this.insertPoint.parentNode.insertBefore(document.createTextNode("page: "), this.insertPoint)
+
+ var a = document.createElementNS(HTML_NAMESPACE, 'a')
+ a.appendChild( document.createTextNode((++this.pageNum)) );
+ a.setAttribute('class', 'autopagerize_link');
+ a.setAttribute('href', this.requestURL);
+ this.insertPoint.parentNode.insertBefore(a, this.insertPoint)
+
return page.map(function(i) {
var pe = document.importNode(i, true)
self.insertPoint.parentNode.insertBefore(pe, self.insertPoint)
Greasemonkey以外のふつうのスクリプトでもこの
innerHTMLがらみで問題が出てるようなので、けっきょくbeta3にもどしました。beta4ははずれってことで。5に期待。
About this entry
You’re currently reading “Firefox3beta4とAutoPagerize0.0.24で起きる問題の修正patch,” an entry on ku
- Published:
- 2008.03.11 / 8pm
- Category:
- AutoPagerize

No comments
Jump to comment form | comments rss [?] | trackback uri [?]