การเพิ่ม Userscript ให้กับ Google Chrome ด้วยตนเอง


161

แทนที่จะ "ติดตั้ง" สคริปต์ผู้ใช้ฉันพบบทเรียนมากมายบนเว็บเพื่อเพิ่มด้วยตนเอง พวกเขาทั้งหมดบอกให้ฉันทำตามขั้นตอนเดียวกัน:

  • สร้างไดเรกทอรี C: \ Users \ Blabla \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ User Scripts
  • วางไฟล์. js ไว้ที่นั่นซึ่งมีสคริปต์ผู้ใช้
  • เริ่ม Chrome ด้วยพารามิเตอร์ --enable-user-สคริปต์

ฉันทำเช่นนั้น - แต่สคริปต์ตัวอย่างของฉันไม่ได้ทำอะไรเลย:

// ==UserScript==
// @name           Test
// @description    Test
// @include        http://example.com/*
// @version        1.0
// ==/UserScript==

alert(0);

ผมทำอะไรผิดหรือเปล่า?


2
การสนับสนุนไดเรกทอรีสคริปต์ผู้ใช้ถูกลบในปี 2011 ดูไดเรกทอรีผู้ใช้สคริปต์ยังคงทำงานกับ Chrome 13.0 หรือไม่: http://stackoverflow.com/questions/6968469/does-the-user-scripts-directory-still-work-with- โครเมี่ยม
XP1

คำตอบ:


240

สิ่งที่ดีที่สุดที่จะทำคือการติดตั้งส่วนขยาย Tampermonkey

สิ่งนี้จะช่วยให้คุณติดตั้งสคริปต์ Greasemonkey และจัดการได้อย่างง่ายดาย นอกจากนี้ยังทำให้การติดตั้ง userscripts โดยตรงจากไซต์เช่นOpenUserJS , MonkeyGutsและอื่น ๆ ง่ายขึ้น

ในที่สุดมันจะปลดล็อคการทำงานของ GM ส่วนใหญ่ที่คุณไม่ได้รับโดยการติดตั้งสคริปต์ GM ด้วย Chrome โดยตรง นั่นคือสิ่งที่ GM บน Firefox สามารถทำได้นั้นสามารถใช้ได้กับ Tampermonkey


แต่ถ้าคุณอยากที่จะติดตั้งสคริปต์จีเอ็มโดยตรงก็ง่ายปวดด้านขวาบน Chrome วันนี้ ...

Chrome หลังจากประมาณเดือนสิงหาคม 2014:

คุณยังสามารถลากไฟล์ไปที่หน้าส่วนขยายและมันจะทำงาน ... จนกว่าคุณจะรีสตาร์ท Chrome จากนั้นจะถูกปิดใช้งานอย่างถาวร ดูการดำเนินการต่อเพื่อ "ปกป้อง" ผู้ใช้ Chrome จากส่วนขยายที่เป็นอันตรายสำหรับข้อมูลเพิ่มเติม อีกครั้ง Tampermonkey เป็นวิธีที่ชาญฉลาดที่จะไป (หรือสลับเบราว์เซอร์ไปเป็น Opera หรือ Firefox)

Chrome 21+:

Chrome ได้รับการเปลี่ยนแปลงวิธีการติดตั้งส่วนขยาย Userscripts เป็นส่วนขยายที่ตัดลงบน Chrome แต่ เริ่มต้นใน Chrome 21พฤติกรรมการเชื่อมโยงคลิกถูกปิดใช้งานสำหรับuserscripts หากต้องการติดตั้งสคริปต์ผู้ใช้ให้ลากไฟล์ **. user.js * ไปยังหน้าส่วนขยาย ( chrome://extensionsในอินพุตที่อยู่)

รุ่น Chrome ที่เก่ากว่า:

ลากไฟล์ **. user.js * ของคุณไปที่หน้าต่าง Chrome ทุกเครื่อง หรือคลิกที่ลิงค์สคริปต์ Greasemonkey

คุณจะได้รับคำเตือนเกี่ยวกับการติดตั้ง:
คำเตือนเริ่มต้น

คลิกดำเนินการต่อ


คุณจะได้รับข้อความยืนยัน:
กล่องโต้ตอบการยืนยัน

คลิกAdd


หมายเหตุ:

  1. สคริปต์ที่ติดตั้งด้วยวิธีนี้มีข้อ จำกัด เมื่อเปรียบเทียบกับสคริปต์ Greasemonkey (Firefox) หรือสคริปต์ Tampermonkey ดูข้ามเบราว์เซอร์ที่ใช้งานสคริปต์ส่วน Chrome

การควบคุมสคริปต์และชื่อ:

โดยค่าเริ่มต้น Chrome จะติดตั้งสคริปต์ในโฟลเดอร์ Extensions 1ซึ่งเต็มไปด้วยชื่อเข้ารหัสและหมายเลขรุ่น และหากคุณพยายามเพิ่มสคริปต์ด้วยตนเองภายใต้โครงสร้างโฟลเดอร์นี้สคริปต์จะถูกลบทิ้งในครั้งถัดไปที่ Chrome รีสตาร์ท

หากต้องการควบคุมไดเรกทอรีและชื่อไฟล์ให้มีความหมายมากกว่านี้คุณสามารถ:

  1. สร้างไดเรกทอรีที่สะดวกให้กับคุณและไม่ได้ที่ Chrome ปกติมีลักษณะสำหรับส่วนขยาย C:\MyChromeScripts\ยกตัวอย่างเช่นการสร้าง:

  2. สำหรับแต่ละสคริปต์สร้างไดเรกทอรีย่อยของตัวเอง ตัวอย่างเช่นHelloWorld.

  3. ในไดเรกทอรีย่อยนั้นให้สร้างหรือคัดลอกไฟล์สคริปต์ HelloWorld.user.jsยกตัวอย่างเช่นบันทึกรหัสของคำถามนี้เป็น:

  4. นอกจากนี้คุณยังจะต้องสร้างไฟล์ Manifest manifest.jsonในไดเรกทอรีย่อยนั้นก็จะต้องมีชื่อ:

    ตัวอย่างของเราควรประกอบด้วย:

    {
        "manifest_version": 2,
        "content_scripts": [ {
            "exclude_globs":    [  ],
            "include_globs":    [ "*" ],
            "js":               [ "HelloWorld.user.js" ],
            "matches":          [   "https://stackoverflow.com/*",
                                    "https://stackoverflow.com/*"
                                ],
            "run_at": "document_end"
        } ],
        "converted_from_user_script": true,
        "description":  "My first sensibly named script!",
        "name":         "Hello World",
        "version":      "1"
    }

    manifest.jsonไฟล์จะถูกสร้างขึ้นโดยอัตโนมัติจากบล็อก meta โดย Chrome เมื่อสคริปต์ผู้ใช้มีการติดตั้ง ค่าของ@includeและ@excludeเมตากฎจะถูกเก็บไว้ในinclude_globsและexclude_globs, @match(แนะนำ) ถูกเก็บไว้ในmatchesรายการ "converted_from_user_script": trueจำเป็นต้องใช้ถ้าคุณต้องการที่จะใช้ใด ๆ ของการสนับสนุนGM_*วิธีการ

  5. ขณะนี้ในของ Chrome ผู้จัดการส่วนต่อขยาย (URL = chrome: // extensions / ) Expand โหมด "นักพัฒนาซอฟต์แวร์"

  6. คลิกขยายแตกโหลด ...ปุ่ม

  7. C:\MyChromeScripts\HelloWorldสำหรับโฟลเดอร์วางในโฟลเดอร์สำหรับสคริปต์ของคุณในตัวอย่างนี้คือ:

  8. สคริปต์ของคุณได้รับการติดตั้งแล้วและใช้งานได้!

  9. หากคุณทำการเปลี่ยนแปลงกับแหล่งสคริปต์ให้กดลิงก์โหลดใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

    ลิงค์โหลดซ้ำ




1โฟลเดอร์เริ่มต้นที่:

Windows XP:
  Chrome:% AppData% \ .. \ Local Settings \ Application Data \ Google \ Chrome \ ข้อมูลผู้ใช้ \ Default \ Extensions \
  Chromium:% AppData% \ .. \ Local Settings \ Application Data \ Chromium \ Data Data \ Default \ Extensions \

Windows Vista / 7/8:
  Chrome:% LocalAppData% \ Google \ Chrome \ ข้อมูลผู้ใช้ \ Default \ Extensions \
  Chromium:% LocalAppData% \ Chromium \ Data Data \ Default \ Extensions \

ลินุกซ์:
  Chrome: ~ / .config / google-chrome / ค่าเริ่มต้น / ส่วนขยาย /
  Chromium: ~ / .config / chromium / Default / Extensions /

Mac OS X:
  Chrome: ~ / Library / Application Support / Google / Chrome / ค่าเริ่มต้น / ส่วนขยาย /
  Chromium: ~ / Library / Application Support / Chromium / Default / Extensions /

แม้ว่าคุณจะสามารถเปลี่ยนได้ด้วยการเรียกใช้ Chrome ด้วย--user-data-dir=ตัวเลือก


1
คำตอบที่ยอดเยี่ยม - อัปเดตเพื่อให้สอดคล้องกับนโยบาย "เว็บสโตร์เท่านั้น" ของ Chrome ใหม่ คุณสามารถลากไฟล์. user.js ไปยังหน้าต่างส่วนขยายได้เท่านั้น
crb

2
@ColonelPanic น่าเศร้าที่คุณทำไม่ได้ รายการที่สร้างอัตโนมัติไม่สามารถทำงานร่วมกับกระบวนการส่วนขยายในขณะนี้! ไม่ใช้"manifest_version": 2ซึ่งจำเป็นต้องใช้ในขณะนี้ ใช้ตัวอย่างในคำตอบเป็นสำเนาเริ่มต้นของคุณ (หรืออย่างน้อยอย่าลืม"manifest_version": 2) ... Google กำลังตั้งค่า userscripts "ปกติ" ทั้งหมดให้ล้มเหลวในการเปิดตัวรอจนกว่าพวกเขาจะเปลี่ยนกระบวนการแสดงอัตโนมัติในไม่ช้า
Brock Adams

1
@brock ฉันเพิ่งลากและวาง userscript ของฉันลงในหน้าต่างส่วนขยายเหมือนคำตอบที่สองและตอนนี้ฉันไม่ต้องกังวลเกี่ยวกับการตรวจสอบ Tampermonkey มันใช้งานได้ :)
Bjorn

1
@ Brock ฉันรู้ว่าคุณมี แต่ได้รับคำแนะนำให้ใช้ Tampermonkey ซึ่งเป็นส่วนขยายที่ต้องมีการเข้าถึงข้อมูลเว็บไซต์ธนาคารของคุณ, facebook ของคุณ, ทุกอย่าง, คำตอบที่สองจะดีกว่า และสำหรับ 'vetted' ไม่มีใครสามารถทำอะไรได้บ้างเพื่อขยายส่วนขยายของ Chrome เนื่องจากคุณสามารถอัปเดตพวกเขาโดยอัตโนมัติเพื่อทำสิ่งที่ไม่ดีได้ตลอดเวลาจากนั้นอัปเดตอีกครั้งเพื่อซ่อนสิ่งนี้ คุณจะต้องสัตวแพทย์ทุกการเปลี่ยนแปลงทุกครั้ง มันอนุญาตให้ทุกอย่าง ทุกอย่าง
Bjorn

1
@marshmellooooooos ยังใช้ได้สำหรับฉัน (Chrome 54.0.2840.99 m) หากคุณไม่สามารถใช้งานได้ให้ติดตั้ง Tampermonkey หรือเปิดคำถามใหม่พร้อมรายละเอียดที่แน่นอนของสิ่งที่คุณลอง
เบอร์ทรัมอดัมส์

53

อัปเดต 2016: ดูเหมือนว่าจะใช้งานได้อีกครั้ง

อัปเดตสิงหาคม 2557: ไม่สามารถใช้งานได้กับ Chrome เวอร์ชันล่าสุดอีกต่อไป


ใช่สถานะของกิจการใหม่ครับ โชคดีที่มันไม่ยากอย่างที่คำตอบอื่น ๆ บอกเป็นนัย

  1. เรียกดูใน Chrome ถึง chrome://extensions
  2. ลาก.user.jsไฟล์ลงในหน้านั้น

voila คุณยังสามารถลากไฟล์จากแถบท้ายกระดาษดาวน์โหลดไปยังแท็บส่วนขยาย

Chrome จะสร้างmanifest.jsonไฟล์โดยอัตโนมัติในไดเรกทอรีส่วนขยายที่Brock บันทึกไว้

<3 เสรีภาพ


15
ต้องแน่ใจว่าชื่อไฟล์นั้นเหมือน <scriptname> .user.js มิฉะนั้น chrome จะไม่รู้จักว่าเป็นนามสกุล
Paco

1
@AlexTracer มันใช้ได้กับฉันใน Chromium 33 บางทีคุณอาจทำอะไรผิดไป
user7610

4
ไม่ทำงานอีกต่อไปใน Chrome 36 สคริปต์ผู้ใช้ที่เพิ่มด้วยวิธีนี้มาพร้อมกับข้อความ: "ส่วนขยายนี้ไม่ปรากฏใน Chrome Web Store และอาจถูกเพิ่มโดยที่คุณไม่รู้" และช่องทำเครื่องหมายเปิดใช้งานถูกปิดใช้งาน
ป้องกันหนึ่ง

2
สิ่งนี้ใช้ได้กับฉันใน Chrome 51 และฉันไม่ได้ใช้พารามิเตอร์บรรทัดคำสั่งใด ๆ พวกเขาอาจจะเปลี่ยนมันกลับมาอีกครั้ง?
นอกรีต

6
ฉันเพิ่งลอง (Chrome 60) และถูกส่งไปยังหน้าที่ระบุว่า "ส่วนขยายที่ไม่ได้เผยแพร่ใน Chrome Web Store นั้นเป็นสีเทาและคุณจะไม่สามารถเปิดใช้งานได้อีกต่อไป" ดูเหมือนว่าพฤติกรรมสิงหาคม 2014 ไม่แน่ใจว่าพวกเขาจะปิดใช้งานสิ่งนี้อีกครั้งหรือเป็นเพราะฉันขาดอะไรบางอย่างไป
Pops

11

พารามิเตอร์นี้ใช้งานได้สำหรับฉัน:

--enable-easy-off-store-extension-install

ทำดังต่อไปนี้:

  1. คลิกขวาที่ไอคอน "Chrome" ของคุณ
  2. เลือกคุณสมบัติ
  3. ในตอนท้ายของบรรทัดเป้าหมายของคุณวางพารามิเตอร์เหล่านี้: --enable-easy-off-store-extension-install
  4. ควรมีลักษณะดังนี้: chrome.exe --enable-easy-off-store-extension-install
  5. เริ่ม Chrome โดยดับเบิลคลิกที่ไอคอน

ฉันได้รับจากsuperuser.com/questions/450893/…
joeytwiddle

1
ผู้ดูแลระบบยังสามารถสร้างนโยบายสำหรับผู้ใช้ทั้งหมดโดยอนุญาต URL ที่อนุญาตตามรูปแบบ: chromium.org/administrators/…
joeytwiddle

ฉันจำเป็นต้องลบสคริปต์เก่าและติดตั้งใหม่ทั้งหมดโดยการลากสคริปต์ไปยังเบราว์เซอร์อีกครั้งเมื่อฉันแก้ไขสิ่งต่างๆหรือไม่ หรือมีวิธีที่ง่ายกว่า?
YMMD

หากต้องการอัปเดตสคริปต์ฉันไปที่สคริปต์บนระบบไฟล์หรือเว็บเซิร์ฟเวอร์และคลิกเพื่อติดตั้ง Chrome เขียนทับเวอร์ชันเก่า หากคุณกำลังพัฒนาสคริปต์และไม่ต้องการติดตั้งต่อไปให้ลองใช้ bookmarklet / userscript hybrid: stackoverflow.com/questions/1810885/…
joeytwiddle

Mmmm ใช่ดูเหมือนว่าพวกเขาได้ปิดใช้งานการโหลดด้านข้างตามวัตถุประสงค์: blog.chromium.org/2018/06/…
joeytwiddle

1

แบ่งปันและติดตั้ง userscript ด้วยคลิกเดียว

หากต้องการทำการติดตั้งอัตโนมัติ (แต่ยืนยันด้วยตนเอง) คุณสามารถกำหนดส่วนสำคัญ (gist.github.com)ด้วย<filename>.user.jsชื่อไฟล์เพื่อรับการติดตั้งเมื่อคลิกเมื่อคุณคลิกที่Rawและรับหน้านี้:

หน้าการติดตั้ง

ทำอย่างไร

  1. ตั้งชื่อส่วนสำคัญของคุณ<filename>.user.jsเขียนรหัสของคุณและคลิกที่ "สร้าง"
    ทำไฟล์บนส่วนสำคัญ

  2. ในหน้าส่วนสำคัญคลิกที่Rawเพื่อรับหน้าการติดตั้ง (หน้าจอแรก)
    ปุ่ม Raw

  3. ตรวจสอบรหัสและติดตั้ง


0

เมษายน 2563 คำตอบ

ใน Chromium 81+ ฉันพบคำตอบว่า: ไปที่ chrome: // extensions / คลิกเพื่อเปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์ที่มุมบนขวาจากนั้นลากและวางสคริปต์. user.js ของคุณ


ใน Chrome (ไม่ใช่ Chromium) สิ่งนี้ไม่ได้ผลสำหรับฉัน มันบอกว่ามันไม่ได้มาจาก Chrome เว็บสโตร์และบังคับให้ปิดการใช้งาน
Monkpit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.