Как мне импортировать этот скрипт Greasemonkey, который использует CDATA, в Chrome?

У меня есть следующий код, который отлично работает на Greasemonkey, но не в Chrome:

// ==UserScript==
// @name        SO
// @namespace   stackru.com
// @include     *stackru.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 ответ

Решение

Тот <><![CDATA[ ... ]]></> код использует "EX4", который никогда не поддерживал Chrome и скоро не будет поддерживаться Firefox.

Итак, чтобы заставить этот скрипт работать, вам нужно использовать другой метод для многострочных строк в javascript. Кроме того, для Greasemonkey, вы должны предоставить @grant значение, по состоянию на GM 1.0.

Пользователь \ избегать персонажа и быть очень осторожным с " а также ' цитаты.
Кроме того, не используйте // комментарии в таких строках, так как они остановят все после них, даже если это будет выглядеть как новая строка.

Это не красиво, но это сделает это:

// ==UserScript==
// @name        SO
// @namespace   stackru.com
// @include     *stackru.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)                       \
        */                                                          \
    " );
}
Другие вопросы по тегам