<div class="shareThis">
//3rd party code start//
<div class="social">
<a href='https://www.google.com/' onClick='onclick()' data-provider='Abhishek'>test</a>
</div>
</div
onclick
函数应该是按原样工作的。除此之外,我还可以捕获click
事件并获取数据提供程序属性值。想要获取数据提供程序的值。
发布于 2018-06-30 04:59:54
只需为click事件添加您自己的事件处理程序,然后在那里做您想做的事情。
您声明锚点标记是由您无法控制的脚本动态添加的。因此,我建议您将单击处理程序设置为处理程序。
document.body.addEventListener('click', function (e) {
var target = e.target;
if ( !(target.tagName.toLowerCase() === 'a' && target.dataset.provider !== undefined)) {
return; // not an anchor and doesn't have a data-provider, exit the handler
}
// since we're here, target must be an anchor with a data-provider attribute.
// do something with it
var provider = target.dataset.provider;
// your code here?
console.log('Delegated handler running... Provider is: ', provider);
}, false); // setting useCapture to false
window.onclick = function (e) {
// dummy function to stub the actual 3rd party function
// and to prevent any actual navigation
console.log('3rd-party function running...');
e.preventDefault();
e.stopPropagation();
return false;
}
<div class="shareThis">
<!-- 3rd party code start -->
<div class="social">
<a href="http://www.example.com" onlick="onclick()" data-provider="Abhishek">Some Link</a>
</div>
</div>
发布于 2018-07-01 04:58:18
尝试捕获点击<div class="social">
而不是锚标签。这样,一旦单击abc.com,就可以捕获锚标签事件。
document.getElementsByClassName('social')[0]
.addEventListener('click', function(event) {
alert("You captured anchor tag event")
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="shareThis">
//3rd party code start//
<div class="social">
<a onlick='onclick()' data-provider='Abhishek'>abc.com</a>
</div>
</div>
https://stackoverflow.com/questions/51102317
复制相似问题