2015-12-24 4 views
0

Я работаю над расширением chrome, которое функционирует почти так же, как и открытое в новой вкладке, но «открыть в новой вкладке», по-видимому, не позволяет открывать ссылки на файлы интрасети, такие как файл: // из-за хрома security reasons. Поэтому, имея это расширение, пользователи, у которых есть это настраиваемое расширение, смогут открыть ссылку URL.Расширение Chrome: ContextMenu Щелкните правой кнопкой мыши, а не выберитеtexttext?

Мне удалось что-то добавить, когда я выбираю какую-либо часть текста ссылки, затем я нажимаю правой кнопкой мыши на контекстное меню, он может открыть ссылку на новой вкладке. Теперь я хочу, чтобы можно было щелкнуть правой кнопкой мыши ссылку, не выбирая текст.

Я попытался изменить контекст для ссылки, но он не работает.

Вот код background.js, который затем отображает выделение, а затем открывается на новой вкладке.

Надеюсь, что кто-то может пролить некоторые идеи и, возможно, фрагментировать код, что я могу сделать здесь, чтобы держать меня в движении.

background.js

var context = "selection"; 
    var title = "Open Local File"; 
    var id = chrome.contextMenus.create({ 
     "title": title, 
     "contexts":[context], 
     "id": "context" + context} 
    ); 

// add click event 
chrome.contextMenus.onClicked.addListener(onClickHandler); 

function onClickHandler(info, tab) { 
    var sText = info.linkUrl; 
    var myUrl = sText; 
    chrome.tabs.create({ url: myUrl }); 

}; 

manifest.json

{ 
    "name": "Right-click context sample", 
    "description": "sample", 
    "version": "0.0.1", 
    "permissions": ["contextMenus", "tabs", "<all_urls>"], 
    "background": { 
    "page" : "background.html", 
    "persistent": false 
    //"scripts": ["background.js"] 
    }, 
    "manifest_version": 2 
} 

Спасибо!

ответ

1

Использование ContextType.

var context = "selection"; 
    var title = "Open Local File"; 
    var id = chrome.contextMenus.create({ 
     "title": title, 
     "contexts":[context], 
     "id": "context" + context, 
     contexts:["all"]} 
    ); 

// add click event 
chrome.contextMenus.onClicked.addListener(onClickHandler); 

function onClickHandler(info, tab) { 
    var sText = info.linkUrl; 
    var myUrl = sText; 
    chrome.tabs.create({ url: myUrl }); 

}; 
+0

Пробовал ваше предложение, на этот раз, когда я нажимаю правой кнопкой мыши ссылку, нет контекстного меню, которое не отображается, и не выбирает ссылку, показывает контекстное меню вообще. – AmazingTrans

0

Я нашел решение, установив для всех следующий контекст.

var context = "all"; 
    var title = "Open Local File"; 
    var id = chrome.contextMenus.create({ 
     "title": title, 
     "contexts":[context], 
     "id": context 
    }); 
Смежные вопросы