Как мне импортировать этот скрипт 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) \
*/ \
" );
}