2013-07-18 31 views
0

我這是在飛行中產生的,如下所示鏈接:聲明和使用上飛的javascript值

<a href="#" id="btn_0">Data1</a> 
<a href="#" id="btn_1">Data2</a> 
<a href="#" id="btn_2">Data3</a> 

我想用下面隨時功能的鏈接之一被點擊:

function alert_some(id){ 
    alert(id); 
} 

因爲在Chrome擴展限制強加給內聯事件處理程序,我不能調用函數alert_some()從生成的鏈接。

Anyidea我該如何解決這個問題?謝謝。

http://jsfiddle.net/selom/wxnDj/

+0

什麼不能做什麼,真的嗎?在鏈接的html上放置''onclick = stuff()「'? – acdcjunior

回答

1

使用jQuery通過Chrome擴展

jQuery(document).on("click", "a", function() { 
    alert_some($(this).attr("id")); 
} 

function alert_some(id) { 
    alert(id); 
} 

或純JS

document.onclick = function(ele) { 
    if (ele.originalTarget.localName == "a") { 
     alert_some(ele.originalTarget.id); 
    } 
} 

function alert_some(id) { 
    alert(id); 
} 

這將與所有a元素的工作,包括在飛行中產生的那些

你需要判斷從其他a小號inate你的網頁雖然... 例<a href="#" id="btn_2" class="generated">Data3</a>


或者修改後的小提琴http://jsfiddle.net/wxnDj/36/

+0

您可能需要驗證像originalTarget這樣的東西,localName在chrome上工作,如果沒有,則查找等價物。 – Robert

+0

它會抓取頁面的所有'a'元素,而不僅僅是他生成的元素。 – mor

+0

是啊?所以他需要添加一個額外的測試。 ''Data3'' – Robert