2009-12-03 75 views
0

如何在JS或JQuery中的以下定位標記中檢索javascript調用?基本上我想獲得代碼(「javascript:do_my_function('blah','string1',1);」),所以我可以執行它。該錨點也嵌入了幾個深度的div標籤。使用js或jQuery從標記中提取JavaScript代碼

<a onmouseout="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g.png',1)" onmousedown="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g_d.png',1)" onmouseover="swapImage('btn1','','http://img2.comp.com/img/buttons/btn_g_a.png',1)" href="javascript:do_my_function('blah', 'string1', 1);"> 
<img id="btn1" width="180" height="60" alt="" src="http://img2.comp.com/img/buttons/btn_ge.png"/> 
</a> 
+1

您應該考慮使用css進行圖像交換。 – gn22 2009-12-03 01:09:01

回答

0

要找回它只需使用:

var href = document.getElementById('btn1').parentNode.href; 

這只是找到了img的ID,並抓住其母公司,有問題的a標籤。

調用它,你可以使用:

window.location = href; 

或者你可以分析它並eval()它。所有這些都是非常傳統的方式。你對代碼沒有進一步的控制嗎?

+0

第一部分似乎適用於將href值分配給變量的地方。但是,我必須去掉領先的「javascript:」字符串。奇怪的是,當我從firebug的控制檯執行它時,eval(href)工作,但當我嘗試從實際呈現的頁面在JS中執行它時,我得到一個「未定義的函數」錯誤。做「window.location」失敗,因爲它似乎試圖導航到JS功能。我不想離開,只是調用函數。 – GregH 2009-12-03 15:58:35

0

要使用jQuery做它,你可以做

var jscript = $('#btn1').parent().attr('href'); 
eval(jscript); 

這不是做的事情,建議這樣做。更改html會好得多

相關問題