2

Greasemonkey では正常に動作するが、Chrome では動作しない次のコードがあります。

// ==UserScript==
// @name        SO
// @namespace   stackoverflow.com
// @include     *stackoverflow.com/*
// @version     1
// ==/UserScript==

changeHeaderColor();

function changeHeaderColor()
{
GM_addStyle((<><![CDATA[
   //body { color: white; background-color: black }
   #custom-header       {background-color: rgb(251,122,35)}

   #nav-questions       {background-color: rgb(251,122,35)}
   #nav-tags            {background-color: rgb(251,122,35)}
   #nav-users           {background-color: rgb(251,122,35)}
   #nav-badges          {background-color: rgb(251,122,35)}
   #nav-unanswered      {background-color: rgb(251,122,35)}
   #nav-askquestion     {background-color: rgb(251,122,35)}
   //Blau: rgb(0,160,160) rgb(0,200,200)
    ]]></>).toString());
}


Chrome またはその両方で動作するようにするには、何を変更する必要がありますか?

4

1 に答える 1

4

この<><![CDATA[ ... ]]></>コードは「EX4」を使用していますが、これは Chromeではサポートされておらず、間もなく Firefox でもサポートされなくなります

したがって、そのスクリプトを機能させるには、 javascript で複数行の文字列に別の方法を使用する必要があります。また、Greasemonkey の@grant場合、GM 1.0 の時点で値を指定する必要があります。

エスケープ文字を使用し、および引用符には\十分注意してください。また、そのような文字列にコメントを 使用しないでください。新しい行にあるように見えても、その後のすべてが停止します。"'
//

きれいではありませんが、これで十分です:

// ==UserScript==
// @name        SO
// @namespace   stackoverflow.com
// @include     *stackoverflow.com/*
// @version     1
// @grant       GM_addStyle
// ==/UserScript==

changeHeaderColor ();

function changeHeaderColor () {
    GM_addStyle ( "                                                 \
        /*body { color: white; background-color: black }            \
        */                                                          \
        #custom-header       {background-color: rgb(251,122,35)}    \
                                                                    \
        #nav-questions       {background-color: rgb(251,122,35)}    \
        #nav-tags            {background-color: rgb(251,122,35)}    \
        #nav-users           {background-color: rgb(251,122,35)}    \
        #nav-badges          {background-color: rgb(251,122,35)}    \
        #nav-unanswered      {background-color: rgb(251,122,35)}    \
        #nav-askquestion     {background-color: rgb(251,122,35)}    \
        /*Blau: rgb(0,160,160) rgb(0,200,200)                       \
        */                                                          \
    " );
}
于 2012-11-27T22:48:31.603 に答える