簡體   English   中英

在 jQuery 中調用 Javascript function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM