无论何时添加新元素,您都必须触发该功能。因为您是知道何时添加新链接的最佳人选,所以您必须以这种方式设置脚本。
function setTargetBlank() {
$('a').each(function() {
if (location.hostname !== this.hostname) {
$(this).attr('target', '_blank');
}
});
}
// On load
$(function() {
setTargetBlank();
loadSomeContent(function() {
// And after it is loaded, trigger again the function
setTargetBlank();
});
});
如果你无法控制这些,你可以简单地设置一个计时器,将始终触发每隔几秒钟即功能:
// This is not really good for performance, but it will work
// It will trigger the function every 3 seconds
setInterval(setTargetBlank, 3 * 1000);
你是什么意思的是ADDE元素动态地?你如何添加这些?当文档准备就绪或加载时,加载和就绪函数都会运行一次,因此您的函数只能运行到第一次加载到DOM的元素。如果以某种方式你可以通过Jquery或JS添加新的链接,你需要再次添加属性空白。从这个意义上来说更明确,我想我可以正确回答。 – DanielPanic
最好的解决方案将是*突变观察者* https://stackoverflow.com/questions/13277212/mutation-observer-for-creating-new-elements –