我有以下代码在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上运行,或者甚至两者都可以使用?
答案 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) \
*/ \
" );
}