使用母版页避免Javascript中的重复

使用母版页避免Javascript中的重复,javascript,jquery,dry,Javascript,Jquery,Dry,假设我有多个网页,每个网页都包含一个iframe和一个链接。单击链接将在新选项卡中的相应页面上打开iframe的源 $('#win1_docViewerNewTab').click(function () { window.open($('#win1_docViewer').attr('src'), '_blank'); }); 此外,假设这些网页中的每一个都在同一个DOM中(例如,使用jQuery选项卡)。每个链接都需要一个唯一的ID,但它们都使用相同的类。iFrame也一样 我的问

假设我有多个网页,每个网页都包含一个iframe和一个链接。单击链接将在新选项卡中的相应页面上打开iframe的源

$('#win1_docViewerNewTab').click(function () {
    window.open($('#win1_docViewer').attr('src'), '_blank');
});
此外,假设这些网页中的每一个都在同一个DOM中(例如,使用jQuery选项卡)。每个链接都需要一个唯一的ID,但它们都使用相同的类。iFrame也一样


我的问题:有没有办法避免重复,在母版页上只使用一个javascript函数,这将导致所有三个页面上的链接在新选项卡中打开各自的iFrame?

目前,锚和iFrame之间没有任何关系(除了它们的id名称之间的一些不可依赖的古怪关系)

您可以使用HTML5
data-*
属性将锚定与iframe关联起来:

<a class="anchor" id="win1_docViewerNewTab" data-iframeid="win1_docViewer" href="...">Click me</a>

听起来不错,但我不认为有一种方法能得到IE8的支持?数据-*属性在IE8中得到了完美的支持。确实如此。你对HTML5的评论让我很反感,因为data-*是HTML5的属性,但IE8等传统浏览器忽略了它们,但它们在jQuery中工作得很好。
$('.anchor').click(function () {
    window.open($('#' + $(this).data('iframeid')).attr('src'), '_blank');
    return false;
});