2016-09-23 71 views
0

我有一个WP博客页面,显示使用类别简码近期帖子 在该页面上,我有一个链接列表,指向他们的帖子。 我不能编辑链接添加id或类给他们,所以我手动使用div来包装短代码和一个JavaScript,使链接打开到新标签点击后,有没有办法我可以打开所有的链接到新标签打开单击? (请记住,我不能编辑LINKS) 这里是我的代码自动点击Div ID中的所有链接

<!--- i cant edit the links below -----> 

<div id="boss" class="boss"> 
<a href="http://example.com/example-1" title="Example 1">Example 1</a> 
<a href="http://example.com/example-1" title="Example 1">Example 2</a> 
<a href="http://example.com/example-1" title="Example 1">Example 3</a> 
<a href="http://example.com/example-1" title="Example 1">Example 4</a> 
</div> 

JAVASCRIPT

<script type="text/javascript"> 
window.onload = function(){ 
    var a = document.getElementById('boss').getElementsByTagName('a'); 
    for (var i=0; i<a.length; i++){ 
     a[i].setAttribute('target', '_blank'); 
     } 
    } 
</script> 

我试图在点击

<div onclick="boss();">Something To Click On</div> 

其加载的所有链接到他们的新标签不工作,任何帮助PLS?

+0

请告诉我老板的功能是什么样子? – Kilmazing

回答

0

Fullcode例如:

<!DOCTYPE html> 
<!-- 
To change this license header, choose License Headers in Project Properties. 
To change this template file, choose Tools | Templates 
and open the template in the editor. 
--> 
<html> 
    <head> 
     <title>TODO supply a title</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

     <script type="text/javascript"> 

     function boss() { 

      var a = document.getElementById('boss').getElementsByTagName('a'); 

      for (var i = 0; i < a.length; i++) { 
       a[i].setAttribute('target', '_blank'); 
       openNewTab(a[i], "click"); 

      } 
     } 

     function openNewTab(obj, evtName) { 

      try { 
       if (obj.dispatchEvent !== null && obj.dispatchEvent !== undefined) { 
        //var event = new Event(evtName); 
        var event = document.createEvent("MouseEvents"); 
        event.initMouseEvent(evtName, true, true, window, 
          0, 0, 0, 0, 0, false, false, false, false, 0, null); 
        obj.dispatchEvent(event); 
       } else if (obj.fireEvent !== null && obj.fireEvent !== undefined) { 
        event = document.createEventObject(); 
        event.button = 1; 
        obj.fireEvent("on" + evtName, event); 
        obj.fireEvent(evtName); 
       } else { 
        obj[evtName](); 
       } 
      } catch (e) { 
       alert(e); 
     } 
    } 
    </script> 
    </head> 

    <body> 
     <div onclick="boss();">Something To Click On</div> 
     <div id="boss"> 
      <a href="http://example.com/example-1" title="Example 1">Example 1</a> 
      <a href="http://example.com/example-2" title="Example 1">Example 2</a> 
      <a href="http://example.com/example-3" title="Example 1">Example 3</a> 
      <a href="http://example.com/example-4" title="Example 1">Example 4</a> 
     </div> 
    </body> 


</html> 
+0

无法正常工作,onclick没有执行任何操作。 – Reuben

+0

函数openNewTab()不工作?.you在try-> catch中收到一些错误? – toto

+0

该div不可点击,并注意到当悬停在...你能告诉我一个这个pls的工作示例吗? – Reuben

0

这将是很容易使用jQuery。您可以使用.each().attr()来实现它。

注意 试试这个脚本在你的WordPress。由于下面的输出是一个iframe,它不会工作!

$ = jQuery; 
 
$(document).ready(function(){ 
 
    $("#boss > a").each(function(){ 
 
    $(this).attr("target","_blank"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="boss" class="boss"> 
 
<a href="http://example.com/example-1" title="Example 1">Example 1</a> 
 
<a href="http://example.com/example-1" title="Example 1">Example 2</a> 
 
<a href="http://example.com/example-1" title="Example 1">Example 3</a> 
 
<a href="http://example.com/example-1" title="Example 1">Example 4</a> 
 
</div>

好运:)