AutoPagerize: resolve img src

例の絶対パス相対パスの問題だと思うけど、AutoPagerize でこのページを下っていくと同じフォトが何回も表示されちゃう。src が相対パスのままだからなのかな?

http://journal.mycom.co.jp/column/photologue/011/index.html

http://twitter.com/taizooo/statuses/1754598650

継ぎ足した2ページ以降の photo のアンカーは絶対パスになってるんだけど、img src は相対パスのままなのな

http://twitter.com/taizooo/statuses/1754634851

http://utatane.tumblr.com/post/105831259/autopagerize-resolve-img-src

http://twitter.com/Constellation/statuses/1754713730

ということで、thx!!! Constellation

autopagerize.user.js (ver 0.0.37) 684行目付近の linkFilter 改変。

var linkFilter = function(doc, url) {
    var base = getFirstElementByXPath('//base[@href]', doc)
    var baseUrl = base ? base.href : url
    var isSameBase = isSameBaseUrl(location.href, baseUrl)
    if (!FORCE_TARGET_WINDOW && isSameBase) {
        return
    }

    var anchers = getElementsByXPath('descendant-or-self::a[@href]', doc)
    anchers.forEach(function(i) {
        var attrHref = i.getAttribute('href')
        if (FORCE_TARGET_WINDOW && !attrHref.match(/^#|^javascript:/) &&
            i.className.indexOf('autopagerize_link') < 0) {
            i.target = '_blank'
        }
        if (!isSameBase && !attrHref.match(/^#|^\w+:/)) {
            i.href = resolvePath(i.href, baseUrl)
        }
    })
    
    var srcs = getElementsByXPath('descendant-or-self::*[self::img[@src] or self::embed[@src]]', doc)
    srcs.forEach(function(elm){
        var src = elm.getAttribute('src')
        if (!isSameBase && !src.match(/^#|^\w+:/)) {
            elm.src = resolvePath(elm.src, baseUrl)
        }
    })
    
    var data_elms = getElementsByXPath('descendant-or-self::object[@data]', doc)
    data_elms.forEach(function(elm){
        var data = elm.getAttribute('data')
        if (!isSameBase && !data.match(/^#|^\w+:/)) {
            elm.data = resolvePath(elm.data, baseUrl)
        }
    })
    
}