2013-02-04 2 views
1

StumbleUpon에 대한 Greasemonkey 스크립트를 만들었습니다. 그러나 갑자기, 모질라 나 스크립트 업데이트 이후에 모든 프로토콜에 대한 작업이 중단되었습니다.내 Greasemonkey 스크립트가 무언가 업데이트 된 후 작동을 멈췄습니다.

실수로든 my script을 검토하십시오. 나는 스크립트에 초보자입니다

스크립트 : 파이어 폭스 버전 (17), Firefox dropped support for E4X

// ==UserScript== 
// @name   [udit]add stumblethru image-flip button[w/o container] on all websites 
// @namespace  testing-for-that-script 
// @description  
// @include   http://facebook.com/* 
// @include   http://* 
// @include   https://* 
// @include   * 
// @exclude   file:///* 
// ==/UserScript== 

if (window.top != window.self) //don't run on frames or iframes 
{ 
    //Optional: GM_log ('In frame'); 
    return; 
} 

/*--- Create a button in a container div. It will be styled and positioned with CSS. 
*/ 
var zNode  = document.createElement ('input'); 
zNode.setAttribute ('id', 'suButton'); 
zNode.setAttribute('type', 'image'); 
zNode.setAttribute('src', 'http://www.creativeadornments.com/nephco/doraemon/icons/doraemon_18a.gif'); 
document.body.appendChild (zNode); 

function tiddu1() 
{ 
document.getElementById("suButton").src ="http://www.creativeadornments.com/nephco/doraemon/icons/doraemon_07.gif"; 
} 

function tiddu2() 
{ 
document.getElementById("suButton").src ="http://www.creativeadornments.com/nephco/doraemon/icons/doraemon_18a.gif"; 
} 

function tiddu3() 
{ 
document.getElementById("suButton").src ="http://www.creativeadornments.com/nephco/doraemon/icons/dorami_01a.gif"; 
} 

function tiddu4() 
{ 
document.getElementById("suButton").src ="http://t1.gstatic.com/images?q=tbn:ANd9GcSI_hx0nLvnO-Em6elAxyMnoBFGw8IMD3Yrpep4XY2I51GylSRf3jHiabAyiw"; 
} 

//--- Activate the newly added button and add rollover image handling. 
var zNode = document.getElementById ("suButton"); 
zNode.addEventListener ("click",  ButtonClickAction, true); 
zNode.addEventListener ("mouseover", tiddu1,   true); 
zNode.addEventListener ("mouseout",  tiddu2,   true); 
zNode.addEventListener ("mousedown",  tiddu3,   true); 
zNode.addEventListener ("click",  tiddu4,   true); 

function ButtonClickAction (zEvent) 
{ 
    //--- For our dummy action, we'll just add a line of text to the top of the screen. 
    var button = document.createElement ('a'); 
    location.href='http://www.stumbleupon.com/to/stumble/stumblethru:'+location.href.replace("http://","").replace("https://","").replace("ftp://","").split('/',4)[0]; 
} 

//--- Style our newly added elements using CSS. 
GM_addStyle ((<><![CDATA[ 
    #suButton { 
     position:    fixed; 
     bottom:     0px; 
     left:     0px; 
     margin:     0px 0px 50px 0px; 
     opacity:    0.8; 
     cursor:     url(C:\buttercup_06.cur),url(http://www.creativeadornments.com/nephco/powerpuffgirls/cursors/ppg_01anim.gif),url(myBall.cur),pointer; 
     border:     0px outset red; 
     z-index:    222; 
     padding:    5px 5px; 
    } 
]]></>).toString()); 

답변

1

. E4X를 사용하면 그 (<><![CDATA[ ... ]]></>).toString () 구조를 사용하여 쉽고 견고하고 여러 줄의 문자열을 만들 수있었습니다.

E4X가 더 이상 지원되지 않으므로 CDATA을 사용하는 모든 코드를 리팩터링하여 자바 스크립트 문자열 이스케이프 (\)를 사용해야합니다. 그래서 당신은 해당 GM_addStyle 호출을 변경해야합니다 : 당신이 '" 따옴표를 혼합하는 방법으로 치료를받는

GM_addStyle ("            \ 
    #suButton {            \ 
     position:  fixed;        \ 
     bottom:   0px;        \ 
     left:   0px;        \ 
     margin:   0px 0px 50px 0px;     \ 
     opacity:  0.8;        \ 
     cursor:   url(C:\buttercup_06.cur),url(http://www.creativeadornments.com/nephco/powerpuffgirls/cursors/ppg_01anim.gif),url(myBall.cur),pointer; \ 
     border:   0px outset red;      \ 
     z-index:  222;        \ 
     padding:  5px 5px;       \ 
    }              \ 
"); 


. 스크립트가 그리스 몽키와 Scriptish의 향후 버전 작업을 계속하도록 또한



, 당신은 GM_addStyle을 사용하고 있기 때문에, 스크립트의 메타 데이터 블록에 // @grant GM_addStyle를 추가합니다.

+0

가장 도움이되고 일하는 친구였습니다! 큰 휴식. 거기에 같은 종류의 스크립트에서 문제가 조금있다, 나는 솔루션에 따라 그것을 수정하려고하지만 그것은 작동하지 않습니다. 그 스크립트의 비트는 다음 n 코멘트입니다. 내 질문을 편집해야합니다 내 나쁜 영어 기술이나 사이트 ettiquete에 대한 .sorry를 검토하십시오. – adi

+0

내가 코멘트에 스크립트의 비트를 넣을 수 없어서, 나는 그 스크립트를 삽입하기 위해 질문을 업데이트/편집했다. – adi

+1

예의 바름과 혼동을 피하기 위해 묻는 질문에 대한 답변이 작동 할 때마다 원래 질문에서 다루지 않았던 새로운 주름이 있는데 그 대답은 효과가 없기 때문에 의견을 달아 질문하십시오 (사소한 것이라면) 또는 새로운 질문을 열고 원래의 것과 다시 링크하십시오. 이 경우, 귀하의 의견()에서 pastebin에 연결 충분했지만, 질문을 편집하는 것은 약간 혼란 스러울 수 있습니다. 모두 말해서 ... ... –