如何将使用CDATA的Greasemonkey脚本导入Chrome?

时间:2012-11-27 21:41:30

标签: javascript google-chrome greasemonkey userscripts e4x

我有以下代码在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上运行,或者甚至两者都可以使用?

1 个答案:

答案 0 :(得分:4)

<><![CDATA[ ... ]]></>代码使用"EX4",Chrome从未支持soon not be supported by Firefox, either

因此,要使该脚本生效,您需要为multiline strings in javascript使用不同的方法。此外,对于Greasemonkey,从GM 1.0起,您应提供@grant值。

使用\转义字符并谨慎使用"'引号。
此外,请勿在此类字符串中使用//条评论,因为它们会在其后停止所有,即使它看起来就像它在新的上一样线。

它很漂亮,但是这样做了:

// ==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)                       \
        */                                                          \
    " );
}