2012-05-24 1 views
4

Создание расширения сафари imageSearch Google.создание расширения сафари в контекстном меню. Когда над мышью правой кнопкой мыши щелкните, как я знаю URL-адрес изображения?

Вот мой источник.

injected.js

document.addEventListener("contextmenu", handleContextMenu, false); 

function handleContextMenu(event) { 
    safari.self.tab.setContextMenuEventUserInfo(event, event.target.nodeName); 
} 

global.html

<!DOCTYPE HTML> 
<script type="text/javascript" src="jquery.js"></script> 
<script> 
safari.application.addEventListener("contextmenu", handleContextMenu, false); 
function handleContextMenu(event) { 
    var query = event.userInfo; 
    if (query === "IMG") { 
     event.contextMenu.appendContextMenuItem("imageSearch", "Search Google with this image"); 
    } 
} 

safari.application.addEventListener("command", performCommand, false); 
function performCommand(event) { 
    if (event.command === "imageSearch") { 


     /*How I get image Url??? */ 
     var imageUrl=""; 


    /* 
     var url = "http://images.google.com/searchbyimage?image_url="+imageUrl; 
     var tab = safari.application.activeBrowserWindow.openTab("foreground"); 
     tab.url = url; 

    */ 

    } 
} 

Моя цель ..

  1. если мышь RightClick добавить «Поиск по Google С этой Изображение "int the context me имя неизвестно (очистить)

  2. и нажмите «Поиск по Google с этим изображением» google it. (???)

, так что я хочу знать URL-адрес изображения.

Что мне делать?

ответ

4

Вы можете попробовать это:

  1. магазин весь узел в USERINFO мероприятия:

    function handleContextMenu(event) { 
        safari.self.tab.setContextMenuEventUserInfo(event, event.target); 
    } 
    
  2. добавить некоторые глобальные Javascript переменную вашего global.html (например, вар lastClickedImg),

  3. изменить свой дескрипторContextMenu для хранения event.userInfo в функции handleContextMenu для этой переменной:

    function handleContextMenu(event) { 
        var query = event.userInfo; 
        if (query.nodeName === "IMG") { 
         lastClickedImg = query; 
         event.contextMenu.appendContextMenuItem("imageSearch", "Search Google with this image"); 
        } 
    } 
    
  4. в функции performCommand вы легко получите URL-изображения в диапазоне от lastClickedImg:

    lastClickedImg.src 
    
0

Вы можете найти URL изображения, помещая слушателя событий для ContextMenu в введенном сценария.

function contextMenuHandler(event) 
{ 
    var url = event.target.src; 
    safari.self.tab.setContextMenuEventUserInfo(event, url); 
} 

document.body.addEventListener("contextmenu", contextMenuHandler, false); 

А затем восстанавливается СРК изображения в командном случае

var imageUrl = event.userInfo; 

Вы должны также сделать некоторые проверки, чтобы убедиться, что это изображение.