Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:从自调用匿名函数/立即调用函数表达式(IIFE)中调用全局函数_Javascript_Jquery - Fatal编程技术网

Javascript:从自调用匿名函数/立即调用函数表达式(IIFE)中调用全局函数

Javascript:从自调用匿名函数/立即调用函数表达式(IIFE)中调用全局函数,javascript,jquery,Javascript,Jquery,我正在尝试创建一个chrome扩展。我的内容脚本中有以下功能来处理文件下载: function handleDownloadFile(urlVal){ console.log("handleDownloadFile called"); } 然后,我有以下代码将函数注入DOM(取自此处:): 调用foo(“http://url.com/doc.pdf“,它将中断,说明handleDownloadFile未定义。如您所见,我甚至尝试传递window,然后将window.handleDown

我正在尝试创建一个chrome扩展。我的内容脚本中有以下功能来处理文件下载:

function handleDownloadFile(urlVal){
    console.log("handleDownloadFile called");
}
然后,我有以下代码将函数注入DOM(取自此处:):

调用
foo(“http://url.com/doc.pdf“
,它将中断,说明handleDownloadFile未定义。如您所见,我甚至尝试传递
window
,然后将
window.handleDownloadFile(url)
设置为单击事件处理程序,但没有成功


如果可能的话,我希望有人能给我一些建议。

在声明handleDownloadFile时,你能试试这个吗-

window.handleDownloadFile = function(urlVal){
    console.log("handleDownloadFile called");
}

jQuery
是否在扩展中定义?您好,谢谢您的评论。是的,它是有定义的,而且是有效的。如果我将
handleDownloadFile()
移动到匿名函数中(例如
foo()
之后),它将工作。但因为我计划使用ChromeAPI(例如
chrome.extension.getBackgroundPage()
),所以它必须在外部。希望它是明确的,如果不是我很乐意提供更多的细节<调用
foo
时,将立即调用code>handleDownloadFile(url)。
handleDownloadFile
的返回值将分配给单击处理程序。如果您希望在单击时调用
handleDownloadFile
,则必须将其包装在函数
$(“#downloadPdfButton”)。单击(函数(){handleDownloadFile(url)})非常感谢Austin,我会立即尝试并让您知道。我刚刚尝试了这个,还有
window.handleDownloadFile(url)
。不幸的是,两者都不起作用。非常感谢你的帮助和时间。
window.handleDownloadFile = function(urlVal){
    console.log("handleDownloadFile called");
}