66// @description Powerful picture viewing tool online, which can popup/scale/rotate/batch save pictures or find the HD original picture automatically
77// @description :zh-CN NLF 的围观图修改版,增加高清原图查找显示(在线看图工具,支持图片翻转、旋转、缩放、弹出大图、批量保存、查找原图)
88// @description :zh-TW NLF 的圍觀圖修改版,增加高清原圖查詢顯示(線上看圖工具,支援圖片翻轉、旋轉、縮放、彈出大圖、批量儲存、查詢原圖)
9- // @version 2017.3.20.2
9+ // @version 2017.3.20.3
1010// @created 2011-6-15
1111// @namespace http://userscripts.org/users/NLF
1212// @homepage http://hoothin.com
@@ -5054,32 +5054,37 @@ left:0px;\
50545054 this . searchButton = searchButton ;
50555055 var srcs , from ;
50565056 img . onerror = function ( e ) {
5057- setSearchState ( "原图加载失败,尝试加载下一结果……" ) ;
5057+ setSearchState ( "原图加载失败,尝试加载下一结果……" , img . parentNode ) ;
50585058 console . info ( img . src + "加载失败" ) ;
50595059 var src = self . srcs . shift ( ) ;
50605060 if ( src ) img . src = src ;
50615061 else {
5062- if ( from < 3 ) {
5062+ if ( from < searchSort . length ) {
50635063 from ++ ;
5064- searchImgByImg ( self . img . src , function ( srcs , index ) {
5064+ searchImgByImg ( self . img . src , self . img . parentNode , function ( srcs , index ) {
50655065 from = index ;
50665066 self . srcs = srcs ;
50675067 self . img . src = srcs . shift ( ) ;
50685068 } , null , null , from ) ;
50695069 } else {
5070- setSearchState ( "未找到原图" ) ;
5070+ setSearchState ( "未找到原图" , img . parentNode ) ;
50715071 setTimeout ( function ( ) {
5072- setSearchState ( "" ) ;
5072+ setSearchState ( "" , img . parentNode ) ;
50735073 } , 2000 ) ;
50745074 }
50755075 }
50765076 } ;
50775077 img . onload = function ( e ) {
5078- setSearchState ( "" ) ;
5078+ setSearchState ( "" , img . parentNode ) ;
5079+ self . imgNaturalSize = {
5080+ h :img . naturalHeight ,
5081+ w :img . naturalWidth ,
5082+ } ;
5083+ self . zoom ( 1 , { x :0 , y :0 } ) ;
50795084 }
50805085 searchButton . addEventListener ( 'click' , function ( e ) {
50815086 sortSearch ( ) ;
5082- searchImgByImg ( self . img . src , function ( srcs , index ) {
5087+ searchImgByImg ( self . img . src , self . img . parentNode , function ( srcs , index ) {
50835088 from = index ;
50845089 self . srcs = srcs ;
50855090 self . img . src = srcs . shift ( ) ;
@@ -6659,7 +6664,7 @@ background-color:rgba(255, 0, 0, 0.150);\
66596664 let from = 0 ;
66606665 let searchFun = function ( ) {
66616666 console . log ( self . data . imgSrc ) ;
6662- searchImgByImg ( self . data . imgSrc , function ( srcs , index ) {
6667+ searchImgByImg ( self . data . imgSrc , null , function ( srcs , index ) {
66636668 let src = srcs . shift ( ) ;
66646669 if ( index == 3 ) {
66656670 self . loadImg ( src , srcs ) ;
@@ -8523,9 +8528,9 @@ background-image:url("'+ prefs.icons.magnifier +'");\
85238528 } ) ;
85248529 }
85258530
8526- function setSearchState ( words ) {
8531+ function setSearchState ( words , imgCon ) {
85278532 if ( words ) console . info ( words ) ;
8528- var searchState = document . querySelector ( '.pv-pic-search-state' ) ;
8533+ var searchState = ( imgCon ? imgCon : document ) . querySelector ( '.pv-pic-search-state' ) ;
85298534 if ( searchState ) searchState . innerHTML = words ;
85308535 }
85318536
@@ -8540,18 +8545,18 @@ background-image:url("'+ prefs.icons.magnifier +'");\
85408545 searchSort . unshift ( prefs . firstEngine ) ;
85418546 }
85428547
8543- function searchImgByImg ( imgSrc , callBack , onError , noneResult , searchFrom ) {
8548+ function searchImgByImg ( imgSrc , imgCon , callBack , onError , noneResult , searchFrom ) {
85448549 let srcs = [ ] ;
85458550 var searchBaidu = function ( ) {
8546- setSearchState ( "百度识图开始……" ) ;
8551+ setSearchState ( "百度识图开始……" , imgCon ) ;
85478552 getUrl ( "http://image.baidu.com/n/same?queryImageUrl=" + encodeURIComponent ( imgSrc ) + "&isguessword=1&rn=30&fr=pc&pn=0&sort=size" , function ( d ) {
85488553 let baiduJson ;
85498554 try {
85508555 baiduJson = JSON . parse ( d . responseText ) ;
85518556 } catch ( e ) {
8552- setSearchState ( "未找到原图" ) ;
8557+ setSearchState ( "未找到原图" , imgCon ) ;
85538558 setTimeout ( function ( ) {
8554- setSearchState ( "" ) ;
8559+ setSearchState ( "" , imgCon ) ;
85558560 } , 2000 ) ;
85568561 searchNext ( ) ;
85578562 return ;
@@ -8562,20 +8567,16 @@ background-image:url("'+ prefs.icons.magnifier +'");\
85628567 if ( srcs . length > 2 ) break ;
85638568 srcs . push ( imgData . objURL ) ;
85648569 }
8565- setSearchState ( "百度识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" ) ;
8570+ setSearchState ( "百度识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" , imgCon ) ;
85668571 callBackFun ( srcs ) ;
85678572 } else {
8568- setSearchState ( "未找到原图" ) ;
8569- setTimeout ( function ( ) {
8570- setSearchState ( "" ) ;
8571- } , 2000 ) ;
85728573 searchNext ( ) ;
85738574 return ;
85748575 }
85758576 } , onError ) ;
85768577 } ;
85778578 var searchGoogle = function ( ) {
8578- setSearchState ( "谷歌识图开始……" ) ;
8579+ setSearchState ( "谷歌识图开始……" , imgCon ) ;
85798580 getUrl ( "https://www.google.com/searchbyimage?safe=off&image_url=" + encodeURIComponent ( imgSrc ) , function ( d ) {
85808581 let googleHtml = document . implementation . createHTMLDocument ( '' ) ;
85818582 googleHtml . documentElement . innerHTML = d . responseText ;
@@ -8591,7 +8592,7 @@ background-image:url("'+ prefs.icons.magnifier +'");\
85918592 let jsonData = JSON . parse ( imgs [ i ] . innerHTML ) ;
85928593 srcs . push ( jsonData . ou ) ;
85938594 }
8594- setSearchState ( "谷歌识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" ) ;
8595+ setSearchState ( "谷歌识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" , imgCon ) ;
85958596 callBackFun ( srcs ) ;
85968597 } , onError ) ;
85978598 } else {
@@ -8600,7 +8601,7 @@ background-image:url("'+ prefs.icons.magnifier +'");\
86008601 } , onError ) ;
86018602 } ;
86028603 var searchTineye = function ( ) {
8603- setSearchState ( "Tineye识图开始……" ) ;
8604+ setSearchState ( "Tineye识图开始……" , imgCon ) ;
86048605 getUrl ( "https://www.tineye.com/search?url=" + encodeURIComponent ( imgSrc ) + "&sort=size" , function ( d ) {
86058606 let tineyeHtml = document . implementation . createHTMLDocument ( '' ) ;
86068607 tineyeHtml . documentElement . innerHTML = d . responseText ;
@@ -8611,7 +8612,7 @@ background-image:url("'+ prefs.icons.magnifier +'");\
86118612 if ( srcs . length > 2 ) break ;
86128613 srcs . push ( searchImg [ i ] . href ) ;
86138614 }
8614- setSearchState ( "Tineye识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" ) ;
8615+ setSearchState ( "Tineye识图结束,共找到" + srcs . length + "张匹配图片,开始加载第一张" , imgCon ) ;
86158616 callBackFun ( srcs ) ;
86168617 } else {
86178618 searchNext ( ) ;
@@ -8620,8 +8621,14 @@ background-image:url("'+ prefs.icons.magnifier +'");\
86208621 } ;
86218622 var searchNext = function ( ) {
86228623 searchFrom ++ ;
8623- if ( searchFrom <= 3 ) switchSearch ( ) ;
8624- else if ( noneResult ) noneResult ( ) ;
8624+ if ( searchFrom <= searchSort . length ) switchSearch ( ) ;
8625+ else {
8626+ if ( noneResult ) noneResult ( ) ;
8627+ setSearchState ( "未找到原图" , imgCon ) ;
8628+ setTimeout ( function ( ) {
8629+ setSearchState ( "" , imgCon ) ;
8630+ } , 2000 ) ;
8631+ }
86258632 } ;
86268633 var callBackFun = function ( srcs ) {
86278634 callBack ( srcs , searchFrom ) ;
0 commit comments