プレビュー画像の表示(単一画像、複数画像、動画のサポート); アニメーションのダウンロード(.zip); お気に入りの数で検索ページをソートします(そして表示します)。 最新の検索ページ用に更新されました。
抽空看了下源码,发现了问题出在搜索页部分对url进行正则判断那里:
Pages[PageType.Search] = {
PageTypeString: 'SearchPage',
CheckUrl: function (url) {
// 没有 /artworks 的页面不支持
return /^https?:\/\/www.pixiv.net\/tags\/.*\/(artworks|illustrations|manga)/.test(url) ||
/^https?:\/\/www.pixiv.net\/en\/tags\/.*\/(artworks|illustrations|manga)/.test(url);
}
因为url多出了后缀"?s_mode=s_tag",所以导致正则不匹配. 因为我也不知道都有哪些参数,所以直接在后面加了".*",于是就正常了. 我看到脚本简介页面里的搜索页示例地址也有带这个后缀,是不是哪次代码更新的时候改了正则导致的?
哇竟然还有人会看源码!
之前有更新改过正则,但是看前面说有很多"Get toolbar failed."的警告,那跟正则不一定有关系,上面贴出来的正则最后没有'$',是无视后面内容的。
(CheckUrl在第2873行调用,如果匹配失败,在2883行会直接退出,不会打印出2904行的警告)
如果会调试可以看一下出问题时,搜索页的GetToolBar函数执行情况,可能某些情况下页面多了一些元素,导致这个函数失败。
我这里换账号电脑都正常,也看不出什么原因,希望你能帮忙找一下原因,如果有问题也可以直接发邮件:ocrosoft#ocrosoft.com
确实是因为装了其他的扩展在root节点下插入了第二个div,禁用后就正常了.
那个扩展在搜索页插入了9个元素,所以$(div[max_children_i]).children()
返回的就是它.
不过为什么之前改了正则也能正常工作?😂️
PS:那个扩展是Powerful Pixiv Downloader.
了解,后续尝试兼容一下,毕竟懒得加下载功能,还是需要其他插件的。
我先给那个扩展提了issue,希望作者能添加一个设置项不插入这些节点.要是他改了你这里也就不需要改了.
不过我还是不懂为什么之前改了正则也能正常工作.😂️
另外源码我也没全看,就是那个findToolbarCommon函数的实现感觉有点繁琐,应该有更简单的写法吧.
我js和jQuery也就会一点皮毛,试了下`return $('#root>div>div>ul').get(0);`选择器直接选中,似乎也能正常使用,而且不需要在意上面那个扩展了.
$('#root>div>div>ul').get(0);
上面这种做法相当于: $('#root').children('div').children('div').children('ul:first')
用了复杂的做法是为了更精确的找到那个ul,如果跟ul父节点平级的div也有一个ul子节点,那么就有可能会跑到那个div里面去。
不过也不是不行,大概率不会出现上面那种情况
搜索页有很大概率遇到无法进行排序的情况,同时不显示右下角齿轮图标,控制台一直输出:[Warning]Get toolbar failed.