2016-05-15 59 views
0

这个我的问题与this非常相似,但是那里的答案对我来说不是很清楚。如何调用extern .js文件中的函数?

所以,来这里知道更多关于这个问题。

我有一个extern .js文件,它有几个函数和一个独特的函数,可以调用这个.js extern文件中存在的所有其他函数。

然后,我需要在我的chrome.webRequest.onCompleted.addListener事件中调用此“主函数”。

到现在为止,我拥有的所有东西都可以在下面看到,但没有任何效果。

的manifest.json

{ 
    "description": "Media Player for Flash", 
    "manifest_version": 2, 
    "name": "Media Player", 
    "icons": { 
    "128" : "picture/flash128.png" , 
    "48" : "picture/flash48.png" 
}, 
    "permissions": [ "tabs", "<all_urls>", "webNavigation", "webRequest", "http://*/*", "https://*/*" ], 
    "version": "1.0" 
} 

callback.js

chrome.webRequest.onCompleted.addListener(
    function onWindowLoad() { 
    chrome.tabs.executeScript(null, { 
     file: "externalfile.js" 
    }, function() {}); 
    }, { 
    urls: ["<all_urls>"], 
    types: ["main_frame"] 
    }, ["responseHeaders"]); 

externalfile.js

function warning_A() { 
    alert("warningA"); 
} 

function warning_B() { 
    alert("warningB"); 
} 

function warning_C() { 
    alert("warningC"); 
} 

///////////////// CALLING ALL TREE PREVIOUS FUNCTIONS////////////////////////////// 
function general_warning() { 
    warning_A(); 
    warning_B(); 
    warning_C(); 
} 

PS:我从本地主机加载我正在开发的扩展测试和使用谷歌浏览器版本:50

+1

'但没有什么作用.'不是很具描述性。你期望会发生什么?控制台中是否显示任何错误?你不会尝试在你的'onCompleted.addListener'回调中调用'general_warning'。 –

+1

你能否重新命名你的文件,以免错误? “弹出”与背景页面无关。因为您不需要该HTML,请使用[第一个表示法](https://developer.chrome.com/extensions/background_pages#manifest),并根据需要重命名文件。 – Xan

+0

@ t.niese,这是我的'onCompleted.addListener'回调中的主要目标(调用'general_warning()')。换句话说,我想在'onCompleted.addListener'里面捕获'general_warnings()'。已经尝试了几种方法,但没有成功。 –

回答

2

你忘了显式调用general_warningexternalfile.js

function warning_A() { 
    alert("warningA"); 
} 

function warning_B() { 
    alert("warningB"); 
} 

function warning_C() { 
    alert("warningC"); 
} 

///////////////// CALLING ALL TREE PREVIOUS FUNCTIONS////////////////////////////// 
function general_warning() { 
    warning_A(); 
    warning_B(); 
    warning_C(); 
} 

general_warning();