我在无法访问源代码的页面上执行 DOM 操作。我只想阻止执行链接的 onClick 处理程序,添加我自己的无关函数,然后允许原始 onClick 函数正常执行。这是页面代码的示例:
<a href="#" onclick="myAjaxFunction('param1, param2');return false;" name="buyLink" id="buyLink" >Buy Now</a>
Run Code Online (Sandbox Code Playgroud)
我想出了下面的代码框架:
jQuery('#buyLink').click(function(event){
event.preventDefault();
my2ndFunction(); // alert(‘I ran’);
//execute myAjaxFunction() here
});
Run Code Online (Sandbox Code Playgroud)
我有两个挑战:
1) 当我使用 Alert() 代码对此进行测试时,会出现警报,但仍会运行原始函数(preventDefualt 似乎不起作用)。
2)如何调用具有正确动态参数值的原始函数?(也许以某种方式使用“自我”?)
首先,备份原始onclick处理程序。然后,将其从元素中移除。最后,创建您自己的处理程序。在您的处理程序中,调用原始函数。
var orig_onclick = $('#buyLink').prop('onclick');
$('#buyLink').removeProp('onclick');
$('#buyLink').click(function(e){
// Do your own code
my2ndFunction();
// Call the original function, with the correct context.
return orig_onclick.call(this, e.originalEvent);
});
Run Code Online (Sandbox Code Playgroud)
演示:http : //jsfiddle.net/qbz7wn9o/
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |