[英]Calling a Javascript function in jQuery
好吧,看起來我之前試圖解釋的方式並沒有奏效。 我將解釋我的全部目的,展示我的代碼和我在做什么。 我正在編寫一個 Google Chrome 擴展程序,它主要與 jQuery 一起運行。 擴展的目的是為我所在的網站提供一些 css 更改、腳本更改和站點更改。 我沒有對該站點的管理訪問權限,因此我無權更改原始文件,只需將“onLoad='create_toolbar()'”屬性添加到正文。 當正文/頁面/文檔加載時,我想運行一個 function,它位於站點的 Javascript 中,稱為“create_toolbar”。 我需要找到一種方法來在頁面加載時調用 create_toolbar 的 function 但仍然在我的擴展程序中運行 jQuery 以清除站點上的一些錯誤。
當文檔准備好 jQuery 時,我有沒有辦法調用 create_toolbar function? 我可以 append 一個空 div 的屬性,以便在加載時調用 create_toolbar function?
我嘗試了以下方法,但都沒有奏效。
$(document).ready(create_toolbar);
.
$(document).ready(function(){
$(body).attr('onLoad', 'create_toolbar()');
};
沒關系,我使用下面的代碼來解決我的問題:
$(document).ready(function(){
$('body').attr('onMouseOver', 'create_toolbar()');
});
為了擴展@Gabriel的答案,在以下情況下,OP的原始代碼應該按原樣工作:
function create_toolbar() {
alert("ran it");
};
$(document).ready(create_toolbar);
.
$(document).ready(create_toolbar);
function create_toolbar() {
alert("ran it");
};
.
var create_toolbar = function(){
alert("ran it");
};
$(document).ready(create_toolbar);
在這種情況下,OP 的代碼將不起作用,但@Gabriel 的解決方案將:
//Doesn't work
$(document).ready(create_toolbar);
var create_toolbar = function(){
alert("ran it");
};
.
//Works
$(document).ready(function() { create_toolbar(); });
var create_toolbar = function(){
alert("ran it");
};
原因是在OP的代碼中, create_toolbar
需要在$(document).ready(create_toolbar);
行存在。 被執行。 在@Gabriel 的帶有閉包的解決方案中, create_toolbar
在文檔准備好之前不需要存在。
閉包:
$(document).ready(function() { create_toolbar(); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.