ฉันสามารถเพิ่มตัวเลือกคลิกขวาใน Google Chrome ได้หรือไม่


17

ใน Google Chrome ถ้าฉันเลือกข้อความและคลิกขวาฉันจะได้รับตัวเลือก:

'ค้นหา Google เพื่อหา [ข้อความ]'

ฉันพบว่ามันมีประโยชน์มาก แต่ฉันต้องการเพิ่มตัวเลือกของฉันเองด้วย

ตัวอย่างเช่นฉันต้องการเพิ่มความสามารถในการค้นหา amazon.co.uk โดยใช้ข้อความที่เลือกหรือตรงไปที่ Google Maps โดยใช้ข้อความที่เลือก (เช่นที่อยู่หรือรหัสไปรษณีย์) เป็นต้น

ฉันสามารถเพิ่มฟังก์ชั่นนี้โดยใช้PhraseExpressแต่จะสามารถทำได้โดยตรงจาก Chrome - เป็นไปได้หรือไม่

คำตอบ:


12

นี่คือส่วนขยายที่ใช้ Context Menus API เพื่อเพิ่มตัวเลือกในเมนูคลิกขวาสำหรับข้อความที่เลือกและช่วยให้คุณกำหนดการค้นหาที่กำหนดเองของคุณเอง

ลองใช้http://maps.google.com/maps?q=TESTSEARCHGoogle Maps และhttp://www.amazon.co.uk/s/?url=search-alias%3Daps&field-keywords=TESTSEARCHสำหรับ Amazon.co.uk


ใช่ฉันคิดว่านี่เป็นสิ่งที่ฉันต้องการ - ขอบคุณ อย่างไรก็ตามจำเป็นต้องเพิ่มคำว่า TESTSEARCH ในสายอักขระของคุณเพื่อใช้คำหรือวลีที่เลือกและใช้งานได้ดี
andygrunt

ฉันได้แก้ไขคำตอบของฉันเพื่อสะท้อนสิ่งนั้นแล้ว
gdejohn

14

มี Context Menus API ที่พร้อมใช้งานในผู้พัฒนาและช่องเบต้าเมื่อเร็ว ๆ นี้ คุณสามารถใช้มันเพื่อเขียนส่วนขยายของคุณเองซึ่งเพิ่มตัวเลือกในเมนูคลิกขวา โปรดทราบว่านี่จะใช้งานได้กับ Google Chrome รุ่น 6 ขึ้นไปเท่านั้น

นี่คือตัวอย่างจากแกลเลอรีส่วนขยายอย่างเป็นทางการ:

  • Imgur Uploader (อัปโหลดภาพไปยัง Imgur ด้วยการคลิกขวา)

ฉันยังเขียนสามของฉันเองตามรหัสที่:

  • TinEye คลิกขวา (ทำการค้นหาภาพย้อนกลับที่ TinEye เมื่อคลิกขวา)
  • Wikipedia คลิกขวา (ค้นหาบทความเกี่ยวกับข้อความที่เลือกที่ Wikipedia เมื่อคลิกขวา)
  • Merriam-Webster คลิกขวา (ค้นหาคำจำกัดความของข้อความที่เลือกที่ Merriam-Webster เมื่อคลิกขวา)

คุณสามารถติดตั้งไฟล์เหล่านั้นด้วยความเสี่ยงของคุณเองโดยคลิกขวาที่ลิงก์คลิกบันทึกลิงก์เป็น ...ค้นหาไฟล์ในคอมพิวเตอร์ของคุณและลากไฟล์เหล่านั้นไปไว้ในหน้าต่าง Google Chrome

อ่านเกี่ยวกับ API ที่นี่:

ในการเขียนของคุณเองคุณต้องมีไฟล์ manifest.json ซึ่งควรมีลักษณะดังนี้:

{
   "background_page": "background.html",
   "description": "Add a context menu item to search for selected text at Google Maps.",
   "icons": {
      "16": "icon16.png",
      "48": "icon48.png"
   },
   "minimum_chrome_version": "6",
   "name": "Google Maps Right Click",
   "permissions": [ "contextMenus", "tabs" ],
   "version": "1.0"
}

คุณต้องมีไฟล์ background.html ด้วยซึ่งควรมีลักษณะดังนี้:

<script>

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});

</script>

สุดท้ายคุณควรมีไอคอนอย่างน้อย 16 × 16 พิกเซลสำหรับเมนูบริบทและไอคอน 48 × 48 พิกเซลสำหรับหน้าการจัดการส่วนขยาย นอกจากนี้คุณยังสามารถระบุไอคอนขนาด 128 × 128 พิกเซลซึ่งจะปรากฏขึ้นระหว่างการติดตั้งและไอคอนขนาด 32 × 32 พิกเซลหากคุณต้องการส่งส่วนขยายของคุณไปยังแกลเลอรี่อย่างเป็นทางการ ไอคอนทั้งหมดของคุณจะต้องอยู่ในรายการ manifest.json ตรวจสอบว่าประเภทไฟล์และชื่อตรงกัน

วางไอคอน background.html และ manifest.json ไว้ในโฟลเดอร์ด้วยกันจากนั้นไปที่หน้าการจัดการส่วนขยายchrome://extensionsดูภายใต้โหมดนักพัฒนาซอฟต์แวร์ (ฉันคิดว่าคุณต้องใช้ช่องสัญญาณเบต้าหรือสูงกว่าเพื่อแสดงสิ่งนี้) คลิกที่ส่วนขยาย Pack …ถัดจากไดเรกทอรีรากของส่วนขยายคลิกเรียกดู…ค้นหาและเลือกโฟลเดอร์ที่คุณทำคลิกตกลงและลากไฟล์. crx ที่ได้ไปไว้ในหน้าต่าง Google Chrome ของคุณ


ขอบคุณสำหรับ Charlatan นี้ ฉันเคยได้ยินเกี่ยวกับ API ใหม่ แต่รอจนกระทั่งพบส่วนขยายที่เติมเต็มความปรารถนาของฉันก่อนโพสต์ไว้ที่นี่เป็นคำตอบสุดท้าย ฉันสงสัยมากฉันจะลองทำด้วยตัวเองเพราะมีคนที่ทำสิ่งนั้นได้ดีกว่าฉัน บางทีผู้แต่งส่วนขยาย 'การค้นหาบริบท' จะเขียนใหม่เพื่อใช้ประโยชน์ API ใหม่
andygrunt

ไม่เป็นไร มันง่ายมากที่จะปรับตัวอย่างข้างต้นสำหรับเว็บไซต์อื่น ๆ สิ่งที่คุณต้องทำเพื่อให้มันใช้งานได้คือเปลี่ยน URL อย่างอื่นก็แค่ทำให้มันสวย ฉันแก้ไขโค้ดในคำตอบเพื่อใช้ค้นหา Google แผนที่ เพียงแค่ต้องเปลี่ยนห้าสิ่ง
gdejohn

โปรดทราบว่ามีการเปลี่ยนแปลงบางอย่างกับส่วนขยายของ Chrome กล่าวmanifest.jsonคือตอนนี้เป็นรุ่นที่ 2 และมีการเปลี่ยนแปลงสิ่งต่าง ๆ มากมาย
Jason

ลิงก์ของคุณไปยัง Dropbox นั้นใช้งานไม่ได้ ยินดีที่จะอัพเดท?
Bob Hopez

@BobHopez ส่วนขยายเหล่านั้นไม่ทำงานกับการเปลี่ยนแปลงทั้งหมดของ Chrome อีกต่อไปในเก้าปีที่ผ่านมา
gdejohn

5

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


ยอดเยี่ยม นี่คือสิ่งที่ฉันต้องการ 99% อย่างที่คุณพูดมันไม่ได้เพิ่มตัวเลือกในเมนูคลิกขวา แต่ที่สำคัญกว่านั้นมันไม่ทำงานทุกที่เช่นเขียนบางอย่างในช่องค้นหาของ Google เลือกมันและปุ่มไม่ปรากฏขึ้น ฉันยังอยากได้ยินว่าเป็นไปได้หรือไม่ที่จะเพิ่มตัวเลือกในเมนูคลิกขวา แต่จะทำเช่นนี้เพื่อให้ได้รับต่อไป ขอบคุณ
andygrunt

AFAIK ไม่มีวิธีเพิ่มตัวเลือกในเมนูเนทีฟของ Chrome (เช่นเมนู "ตัวเลือก" ที่ด้านบนขวา) เนื่องจากส่วนขยายสามารถปรับเปลี่ยน DOM และแสดงป๊อปอัปเท่านั้น อาจเป็นตัวเลือกโดยเจตนาเพื่อให้เข้ากันได้ข้ามแพลตฟอร์มได้ดีขึ้น
whitequark

1
นี่คือเหตุผลหนึ่งที่ฉันติดกับ Firefox
CGA

@CGA: Firefox เป็นสิ่งที่ดีและฉันใช้มันมาหลายปีแล้ว แต่มันก็ดูถูกเกินไปในเน็ตบุ๊ค Atom 2x1600
whitequark

ไม่เห็นด้วยกับคุณที่นั่น
CGA

1

ฉันเพลิดเพลินกับส่วนขยายที่เรียกว่าเมนูคลิกขวาที่กำหนดเอง มันช่วยให้คุณสร้างรายการเมนูคลิกขวาที่กำหนดค่าได้อย่างสมบูรณ์และยังสามารถใช้งานได้ในเบราว์เซอร์อื่น (Opera: ติดตั้งส่วนขยาย Chrome , Firefox: Chrome Store Foxified )

  • ติดตั้ง "เมนูคลิกขวาที่กำหนดเอง" จาก Chrome Store
  • เปิดตัวเลือกสำหรับเมนูคลิกขวาที่กำหนดเอง
  • ในส่วนการแก้ไข CRM เลือกการเลือก
  • เลื่อนลงไปที่เครื่องมือค้นหาที่ใช้บ่อยและเพิ่มเข้าไป
  • เพิ่มเครื่องมือค้นหานั้นในส่วนการแก้ไข CRM
  • คลิกที่มันไม่ใช่บนอุปกรณ์ของมันเพื่อแก้ไข
  • เปลี่ยนชื่อเป็น "ค้นหา amazon.co.uk" หรืออะไรก็ตาม
  • เปลี่ยนรหัสเป็น

    var query;
    var url = "https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    
  • สร้างรายการเมนูอื่นของประเภทสคริปต์เรียกมันว่า "Google Map" หรืออะไรก็ตามและใช้รหัสในลักษณะเดียวกัน:

    var query;
    var url = "https://www.google.com/maps/search/%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    

0

มีส่วนขยายที่เรียกว่า "การค้นหาเมนูบริบท" มันช่วยให้คุณเพิ่ม URL ลงไปจากนั้นเมื่อคุณเลือกข้อความและคลิก URL ใด URL หนึ่งมันจะส่งข้อความนั้นไปยัง URL ที่คุณคลิก

ตัวอย่างเช่น URL การค้นหาสำหรับ YouTube คือ:

http://www.youtube.com/results?search_query=TESTSEARCH

โดยที่ TESTSEARCH เป็นข้อความที่คุณต้องการค้นหา ในส่วนขยายคุณเพิ่มบรรทัดนี้และมันจะแทนที่ TESTSEARCH โดยอัตโนมัติด้วยข้อความที่เลือกเมื่อคุณกด คุณสามารถ ofcourse เพิ่มป้ายกำกับสำหรับแต่ละ URL

นี่คือลิงค์ไปยังส่วนขยาย

https://chrome.google.com/webstore/detail/ocpcmghnefmdhljkoiapafejjohldoga


0

สวัสดีตั้งแต่คำถามหลักได้รับคำตอบฉันต้องการมีส่วนร่วมกับบางสิ่งบางอย่าง

นี่เป็นสคริปต์ที่เรียบง่าย แต่มีการปรับเปลี่ยนคล้ายกับการค้นหาภาพย้อนกลับด้วย Google แต่เปลี่ยนเส้นทาง imglink.jpg ไปยัง Exif Viewer ของ Jeffrey เพื่อวิเคราะห์ EXIF ​​ของภาพ

ขอขอบคุณที่gdejohn

ง่ายสร้างไฟล์ 2 ไฟล์นี้ฉันใช้ notepad เพิ่มไอคอน 16x16, 48x48 และ 128x128 (หรือลบบรรทัด) และไปที่ chrome: // ส่วนขยาย / ติ๊ก / ผู้พัฒนาโหมดติ๊กเพิ่มโฟลเดอร์ที่มีไฟล์

ชื่อไฟล์: manifest.json

{
"manifest_version": 2,
    "background" : { "scripts": ["background.js"] },
    "description": "Agrega un menu contextual para ver el EXIF de imagenes. Jeffrey's Exif Viewer",
    "icons": {
            "16": "icon16.png",
            "48": "icon48.png",
            "128": "icon128.png"
        },
   "minimum_chrome_version": "6",
   "name": "Regex Exif Viewer Right Click",
   "permissions": [ "contextMenus", "tabs", "http://*/*",
 "https://*/*" ],
   "version": "1.0"
}

ชื่อไฟล์: background.js

/**
 * Returns a handler which will open a new tab when activated.
 */


function getClickHandler() {
  return function(info, tab) {

    // The srcUrl property is only available for image elements.

var url = "http://regex.info/exif.cgi?imgurl=" + info.srcUrl;

    // Create a new tabto the info page.

chrome.tabs.create({ url: url, });
  };
};



/**
 * Create a context menu which will only show up for images.
 */


chrome.contextMenus.create({
  "title" : "Get image info via Jeffrey's Exif Viewer",
  "type" : "normal",
  "contexts" : ["image"],
  "onclick" : getClickHandler()
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.