2014-09-10 2 views
1

greasemonkey 스크립트 아래 정의 된 도메인 강조 표시. 예 : 내 검색어가 책이고 내 도메인이 amazon입니다. 이 도메인에 대한 결과가 0 개를 초과하면 해당 div가 강조 표시됩니다.Google 검색 결과에서 특정 도메인을 강조 표시하는 방법은 무엇입니까?

하지만 작동하지 않습니다. 약 4 년 전에 이전 Google 디자인을 위해 설계 되었기 때문입니다. 나는 아무것도 바꾸려고 시도하지만 아무것도.

스크립트 소스는 : Locate Multiple Domains Highlights

// ==UserScript== 
// @name   Locate Multiple Domains in Search Results 
// @filename  multiple-domains.user.js 
// @author   Alex Hall 
// @homepage  http://www.devseo.co.uk 
// @namespace  http://www.devseo.co.uk/blog/view/greasemonkey-script 
// @version  1.0 
// @description Locate specific domains easily within the results of a Google, Yahoo!, or Bing Search 
// @include  http://www.google.com/search* 
// @include  http://google.com/search* 
// @include  http://www.google.com/#* 
// @include  http://google.com/#* 
// ==/UserScript== 

//***********************BEGIN CONFIGURATION**********************// 
// Set the array of sites you wish to locate (without www is best) - syntax [['mydomain.com', '#color'], ['mydomain2.com', '#color']]; 
// Set the color variable to the background color you wish to use to highlight your domain (defaults to light red) 
var sites = [ 
     ['domainxyz.com', '#FFCC66'], 
     ['www.domainxyz.com', '#C2D9EF'], 
]; 

var siteLen = sites.length; 
var numNot = 0; 

//************************END CONFIGURATION***********************// 

//*******************DO NOT EDIT PAST THIS LINE*******************// 
//****************UNLESS YOU KNOW WHAT YOU'RE DOING***************// 
setTimeout(startItOff, 1000); 
function startItOff() 
{ 
     var all_links = document.getElementsByTagName('cite'); 
     var linkLen = all_links.length; 
     if (location.hostname.indexOf("google.com")!=-1) { 
      for (i=0; i<linkLen; i++) { 
       if (all_links[i].className!='l') { continue; } 
       var href = all_links[i].value; 
         if(all_links[i].parentNode.tagName.toLowerCase() === 'div'){ 
           numNot++; 
         } 
      } 
      for (i=0; i<linkLen; i++) { 
       if (all_links[i].className!='l') { continue; } 
       var href = all_links[i].getAttribute('href'); 

       for(j=0;j<siteLen;j++){ 
        if (href.indexOf(sites[j][0])==-1) { continue; } 
        var result=all_links[i].parentNode.parentNode; 
        result.style.backgroundColor=sites[j][1]; 
        result.style.overflow='hidden'; 
        result.style.width='740px'; 

          var listingNum = all_links[i].getAttribute('onmousedown'); 
          listingNum = listingNum.split(','); 
          listingNum = listingNum[4].split('\''); 
          listingNum = listingNum[1]; 
          var resultDiv = document.createElement('div'); 
          result.appendChild(resultDiv); 
          resultDiv.style.cssText = 'float: right;font-size:16px;margin:0 5px 5px 0;background: #FFF;padding: 5px;'; 
          resultDiv.innerHTML = 'Result ' + (listingNum - numNot); 
       } 
      } 
     } 
} 

나는 아직도 당신이 사용 JQuery와 사용하려는거야

var all_links = document.getElementsByTagName('cite'); 
    var linkLen = all_links.length; 
    if (location.hostname.indexOf("google.com")!=-1) { 
     for (i=0; i<linkLen; i++) { 
      if (all_links[i].className!='l') { continue; } 
      var href = all_links[i].value; 
        if(all_links[i].parentNode.tagName.toLowerCase() === 'div'){ 
          numNot++; 
        } 
     } 
+0

당신은 그보다 조금 더 구체적이어야합니다. – AstroCB

+0

그것은 매우 분명하다라고 생각한다 – hakiko

+0

당신은 무엇을 시험해 보았 느냐? 무슨 일 이니? 뭐라구? 뭐가 필요해? 그것은 귀하의 링크에서 코드의 간단한 복사 붙여 넣은 것 같다. 우리는 당신을 위해 그것을하기 위해 여기에 있지 않습니다. 우리는 당신이 그것을 성취 할 수 있도록 돕기 위해 왔습니다. – YoannM

답변

3

를 작동하지 않는 스크립트의이 부분에 뭔가를 변경했습니다. 그리고 제가 제대로 이해한다면 아주 간단한 스크립트입니다. 참고 : Google이 설치 한 jQuery가 제대로 작동하지 않으므로 자신이 무엇을 하든지 반드시 필요합니다.

// ==UserScript== 
// @name   Google Search Domain Highlighter 
// @author   Wisnoskij 
// @homepage  https://openuserjs.org/users/wisnoskij 
// @namespace  https://openuserjs.org/users/wisnoskij 
// @version  1.0 
// @description Locate specific domains easily within the results of a Google Search 
// @include  /https?://(www\.)?google\.[^/]*/search[^/]*/ 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js 
// ==/UserScript== 
var sites = { 
    'stackoverflow.com': '#FFCC66', 
    'tutorialspoint.com': '#C2D9EF', 
    'css-tricks.com': '#CCFF66' 
}; 
var numHL = 0; 

$('._Rm').each(highlight); 
function highlight(index, element){ 
    try{ 
    var node = $(element); 
    var site = node.text(); 

    site = getDomain(site); 
    if(sites[site]){ 
     node.closest('.rc').css('background-color', sites[site]); 
     return; 
    } 
    site = removeWWW(site); 
    if(sites[site]){ 
     node.closest('.rc').css('background-color', sites[site]); 
     return; 
    } 
    }catch(er){} 
} 

function getDomain(url){ 
    var tmp = url.indexOf('://'); 
    if(tmp > -1){ 
     url = url.substring(tmp+3); 
    } 
    url = url.match(/^[^/]*/)[0]; 
    tmp = url.indexOf(' › '); 
    if(tmp > -1){ 
     url = url.substring(0, tmp); 
    } 
    return(url); 
} 
function removeWWW(url){ 
    var tmp = url.indexOf('.'); 
    if(tmp > -1){ 
     url = url.substring(tmp+1); 
    } 
    return(url); 
} 

완전한 기능을 갖춘 작업 스크립트.

+0

잘못 알리면 알려주세요. 솔루션을 붙여 넣는 것보다 메타 블록 줄을 제외한 모든 코드를 삭제합니까? – hakiko

+0

@hakiko 전체 스크립트로 업데이트되었습니다. – Jonathon

+0

감사합니다. 하지만 링크가 빵 부스러기를 가지고있을 때 어떻게 처리 할 수 ​​있습니까? 예 : www.example.com> 브랜드> Adidas – hakiko

관련 문제