使用相同的用户脚本在不同的URL上运行不同的代码

时间:2018-02-02 17:28:10

标签: javascript greasemonkey userscripts tampermonkey greasemonkey-4

我知道可以通过添加CREATE MATERIALIZED VIEW STRUTT_AFAM_RD ( CD_ENTE, CD_STRUTTURA ) TABLESPACE FLUSSI_SIA01D BUILD IMMEDIATE USING INDEX REFRESH COMPLETE ON DEMAND NEXT TO_DATE ( TO_CHAR (SYSDATE + 1, 'DD-MON-YYYY') || ' ' || '05:00:00', 'DD-MON-YYYY HH24:MI:SS') WITH ROWID USING DEFAULT LOCAL ROLLBACK SEGMENT USING ENFORCED CONSTRAINTS -- DISABLE ON QUERY COMPUTATION DISABLE QUERY REWRITE --> yours DISABLE QUERY REWRITE --> mine AS (SELECT SUBSTR (S.CD_STRUTTURA_CUDES, 1, 3) CD_ENTE, S.CD_STRUTTURA_CUDES CD_STRUTTURA FROM PONTE_EVESAN.STRUTTURE_FAM_AN@SEBP_PONTE_EVESAN S WHERE S.DT_FINE_VALIDITA IS NULL AND S.FL_ANNULLA = 0); 语句在不同的网址上运行脚本,但是可以根据网址运行不同的代码集吗?

我的脚本目前工作正常,但我不得不将其分成5个单独的用户脚本,感觉有点草率。

1 个答案:

答案 0 :(得分:1)

要根据网址切换运行的代码,请对the location objectDoc的部分内容使用if()switch()语句。

为避免误报和副作用,最好只测试最具辨别力的属性(通常为hostname和/或pathname)。

例如,用于在不同网站上运行的脚本

if (/alice\.com/.test (location.hostname) ) {
    // Run code for alice.com
}
else if (/bob\.com/.test (location.hostname) ) {
    // Run code for bob.com
}
else {
    // Run fall-back code, if any
}

// Run code for all sites here.


或者,适用于同一网站,不同的网页

if (/\/comment\/edit/.test (location.pathname) ) {
    // Run code for edit pages
}
else if (/\/comment\/delete/.test (location.pathname) ) {
    // Run code for delete pages
}
else {
    // Run fall-back code, if any
}

// Run code for all pages here.


请注意使用escape \ .test()用于正则表达式的强大功能。例如,
/(alice|bob)\.com/.test (location.hostname)