2015-08-03 214 views
-1

正如您所見,我在Chrome擴展程序中遇到onclick事件問題,我需要您的幫助。Chrome擴展程序 - onclick圖標事件

$(function jony() { 
    jQuery.each(jQuery('img'), function() { 
    jQuery(this).attr('src', 'urlimage'); 
    }); 
}); 

chrome.browserAction.onClicked.addListener(function(tab) { 
    jony(); 
}); 

清單:

{ 
    "manifest_version": 2, 

    "name": "Jonyzátor", 
    "description": "Change images on page to JoNy!", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_title": "Klikni na mě!" 
    }, 
    "permissions": [ 
    "activeTab", 
    "https://ajax.googleapis.com/" 
    ], 
    "content_scripts": [ { 
    "js": [ "jquery.js", "jonyza.js"], 
    "matches": [ "http://*/*", "https://*/*"] 
    }] 
} 
+0

那麼究竟是什麼問題?它根本不可見......你需要什麼樣的幫助?你問的問題沒有問題。 – planetmaker

+0

嗯,當我點擊那個圖標時,我想要腳本運行。我現在遇到的問題是它會在每個頁面上自動加載。 –

回答

0
  1. 其中jony定義僅限於$()範圍;外面它只是未定義。

    function jony() { 
        jQuery.each(jQuery('img'), function() { 
        jQuery(this).attr('src', 'urlimage'); 
    } 
    
    $(jony); // Will execute on page load 
    
    // and you can still use it here 
    

    我不知道這是你想要的邏輯 - 你希望它在頁面加載同時運行,當你點擊?

  2. 您不能在內容腳本中使用browserAction API。它的適當位置將是background(或event)腳本,然後您可以使用message您的內容腳本來執行某些操作。

+0

我只想在點擊圖標時執行腳本。 –

+0

@AlešŠvec然後你不需要在[ready listener](https://learn.jquery.com/using-jquery-core/document-ready/)中調用它。 – Xan