Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用window.open更改href_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 使用window.open更改href

Javascript 使用window.open更改href,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我使用jgfeed通过jquery检索提要。它工作得很好。 它显示所有的标题和链接 代码如下: $.jGFeed('http://www.link.org/feed', function(feeds){ if(!feeds){ alert('No network'); } for(var i=0;i<feeds.entries.length;i++){ var entry

我使用jgfeed通过jquery检索提要。它工作得很好。 它显示所有的标题和链接

代码如下:

        $.jGFeed('http://www.link.org/feed',
    function(feeds){
        if(!feeds){
            alert('No network');
        }
        for(var i=0;i<feeds.entries.length;i++){
            var entry = feeds.entries[i];
            var title = entry.title;
            var link = entry.link;              

            var html = "<ul class='pageitem'><li class='textbox'><span class='header'>" + title + "</span></li><li class='menu'><a href='" + link + "'><span class='name'>Read more</span><span class='arrow'></span></a></li></ul>";

            $("#feedContent").append($(html));
        }
    }, 20);
$.jGFeed('http://www.link.org/feed',
功能(提要){
如果(!feed){
警报(“无网络”);
}

对于(var i=0;i,因为您正在使用jQuery,所以可以为列表中的链接设置自己的事件处理程序

$('.pageitem').delegate('a', 'click', function(e) {
   window.open( $(this).attr('href'), 'popup' );

   e.preventDefault();
});


请注意,我们使用的是而不是
$。单击()
。这是因为我们正在处理的
标记在页面加载上不存在。使用
委托()
可确保列表中所有未来的
标记都获得事件处理程序。我建议保持href,以防窗口打开时出现问题

您只需将一个类添加到要附加到html字符串中的每个链接中,然后在附加该类后,向该类应用单击事件:

   $.jGFeed('http://www.link.org/feed',
function(feeds){
    if(!feeds){
        alert('No network');
    }
    for(var i=0;i<feeds.entries.length;i++){
        var entry = feeds.entries[i];
        var title = entry.title;
        var link = entry.link;              

        var html = "<ul class='pageitem'><li class='textbox'><span class='header'>" + title + "</span></li><li class='menu'><a href='" + link + "' class="external-link"><span class='name'>Read more</span><span class='arrow'></span></a></li></ul>";

        $("#feedContent").append($(html));
        $('.external-link').click(function() {
          window.open($(this).attr('href'), 'My_Window', 'width=800,height=600');
          return false;
        });
    }
}, 20);
$.jGFeed('http://www.link.org/feed',
功能(提要){
如果(!feed){
警报(“无网络”);
}
对于(var i=0;i
var html=“
    ”+ “
  • ”+ “”+标题+“”+ “
  • ”+ “”+ “
”;
当然,你想打开一个新窗口还是想打开一个新的弹出窗口?你想让你的
在一个新窗口中打开吗?不要使用
live()
!即使是jQuery核心成员也会说不要使用它。它仍然存在只是因为遗留的原因。使用
delegate()
相反。要慢得多。&&谢谢你的提示,我不知道live()。我已经相应地更新了。很好:)我认为你缺少了第一个属性tho。我相信你必须给它一个上下文来查找新元素(我认为它比
live()
快的一个原因)哦,忘了提一下,第一个attr应该是这样的。委托(“#parentSelector”,“click”,function(){…})我现在得到了吗?我正在查看delegate()api页面上的示例,似乎他们首先有父对象,然后才有选择器。它是空的,不是新的。新建只会打开一个新窗口,然后重用该窗口不是很清楚。“new”听起来好像每次都需要一个新窗口,我建议:
var w=window.open($(this.attr('href'),$(this.attr('target'),'width=800,height=600');返回w?false:true;
-所以我删除了通过href和target的答案
   $.jGFeed('http://www.link.org/feed',
function(feeds){
    if(!feeds){
        alert('No network');
    }
    for(var i=0;i<feeds.entries.length;i++){
        var entry = feeds.entries[i];
        var title = entry.title;
        var link = entry.link;              

        var html = "<ul class='pageitem'><li class='textbox'><span class='header'>" + title + "</span></li><li class='menu'><a href='" + link + "' class="external-link"><span class='name'>Read more</span><span class='arrow'></span></a></li></ul>";

        $("#feedContent").append($(html));
        $('.external-link').click(function() {
          window.open($(this).attr('href'), 'My_Window', 'width=800,height=600');
          return false;
        });
    }
}, 20);
var html = "<ul class='pageitem'>" + 
           "  <li class='textbox'>" + 
           "   <span class='header'>" + title + "</span>" + 
           "  </li>" + 
           "  <li class='menu'>" + 

           "    <a href='" + link + "' target='new'>"; // <<-- Look here. Make 
          //this target unique if each link should open in its own page. use one 
          //target like "new" to open all links in one separate page.

    html +="      <span class='name'>Read more</span>" + 
           "      <span class='arrow'></span>" + 
           "    </a>" + 
           "  </li>" + 
           "</ul>";