我有一些链接是通过JSON动态放置在我的页面上的,没有办法直接编辑它们。我想强制所有链接在新标签中打开,ala target="_blank"
以为这会有用。可惜不是有什么想法吗
$('a').attr("target","_blank");
字符串
下面是一个jsFiddle的动态代码:http://jsfiddle.net/danielredwood/mrgta/7/
我有一些链接是通过JSON动态放置在我的页面上的,没有办法直接编辑它们。我想强制所有链接在新标签中打开,ala target="_blank"
以为这会有用。可惜不是有什么想法吗
$('a').attr("target","_blank");
字符串
下面是一个jsFiddle的动态代码:http://jsfiddle.net/danielredwood/mrgta/7/
5条答案
按热度按时间g0czyy6m1#
你可以这样做(让用户的浏览器决定是否打开一个新窗口或标签)
字符串
对于jQuery 1.7+:
型
vxbzzdmp2#
你的问题可能是时机问题。
请记住,当您调用类似
$('a').attr(...whatever...)
的东西时,它将立即对页面上的任何和所有 * 现有 * 元素生效。所以,如果你的tweet
插件是异步的,并且执行时间超过0毫秒,那么看起来你的代码正在尝试更改链接上的属性,而这些链接甚至还不存在于页面上。也就是说,你可能(A)调用
tweet
插件,(B)更改页面上的所有链接,然后(C)推文插件完成并在页面上注入一堆之前错过的新链接。因此,您可以尝试查看您正在使用的
tweet
插件是否具有某种“all-done”或其他完成回调,然后您可以使用这些回调来更改链接标记。或者,就像另一个建议的答案一样,我也赞同,不仅仅是尝试和改变链接标签,而是在页面上的任何链接点击时监听(实时),并及时拦截它们。这样,你就不需要担心tweet插件的时间/完成,因为你可以使用事件委托(live
),它可以在任何时间点工作。请参阅Petah的答案,了解如何做到这一点。祝你好运!
ubof19bj3#
这对我很有效:
字符串
7d7tgy0s4#
试试看:
字符串
另外,尝试使用“_new”而不是空白。如果这不起作用,为什么不发布生成的html或整个JavaScript代码呢?
xkrw2x1b5#
它不工作是因为当
$('a').attr("target","_blank");
被触发时,<a>
还不是页面的一部分。