Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何使链接在单击时打开多个页面_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使链接在单击时打开多个页面

Javascript 如何使链接在单击时打开多个页面,javascript,jquery,html,Javascript,Jquery,Html,我有两个(或更多)链接。例如:和 当我单击单个链接时,如何使它们都打开 例如,一个名为“单击此处”的链接,单击该链接将打开两个不同的空白窗口。HTML: <a href="#" class="yourlink">Click Here</a> 窗口。打开还可以获取其他参数。请看这里: 您还应该知道window.open有时会被弹出窗口阻止程序和/或广告过滤器阻止 下面Paul的补充:这种方法还依赖于启用的JavaScript。这通常不是一个好主意,但有时是必要的。您可能希

我有两个(或更多)链接。例如:和

当我单击单个链接时,如何使它们都打开

例如,一个名为“单击此处”的链接,单击该链接将打开两个不同的空白窗口。

HTML:

<a href="#" class="yourlink">Click Here</a>
窗口。打开
还可以获取其他参数。请看这里:

您还应该知道window.open有时会被弹出窗口阻止程序和/或广告过滤器阻止


下面Paul的补充:这种方法还依赖于启用的JavaScript。这通常不是一个好主意,但有时是必要的。

您可能希望排列HTML,这样即使未启用JavaScript,用户也可以打开所有链接。(我们称之为渐进式增强。)如果是这样的话,类似的方法可能会很有效:

HTML
  • “);//创建一个新链接。。。 多链接。单击(函数(){ for(URL中的变量i){ window.open(URL[i]);/…在单击时在其自己的窗口中打开每个存储的链接。。。 } }); $('.yourlinks')。替换为(多链接);/。。。并用新链接替换原来的HTML链接。 });

这段代码假设您每页只想使用一个这样的“多链接”。(我也没有测试过它,所以可能有很多错误。)

我用一种简单的方式做了:

<a href="http://virtual-doctor.net" onclick="window.open('http://runningrss.com');
return true;">multiopen</a>


它将在新窗口和同一窗口中打开。

您可以单击打开多个窗口。。。试试这个

<a href="http://--" 
     onclick=" window.open('http://--','','width=700,height=700'); 
               window.open('http://--','','width=700,height=500'); ..// add more"
               >Click Here</a>`
`

您需要解锁浏览器的弹出窗口,代码才能正常工作

chrome://settings/contentExceptions#popups


我在保罗和亚当的方法之间创造了一种混合方法:

打开链接数组的链接已在html中。jquery只创建链接数组,并在单击“全部打开”按钮时打开每个链接:

HTML:

您可以在这里查看:

如果您希望通知访问者将打开哪些链接,可以使用JS函数从html元素读取链接。您甚至可以让访问者编写/修改链接,如下所示:

<script type="text/javascript"> 
    function open_all_links() {
        var x = document.getElementById('my_urls').value.split('\n');
        for (var i = 0; i < x.length; i++)
            if (x[i].indexOf('.') > 0)
            if (x[i].indexOf('://') < 0)
                window.open('http://' + x[i]);
            else
                window.open(x[i]);
    }
</script>



<form method="post" name="input" action=""> 
    <textarea id="my_urls" rows="4" placeholder="enter links in each row..."></textarea>
    <input value="open all now" type="button" onclick="open_all_links();">
</form>

函数打开所有链接(){
var x=document.getElementById('my_URL').value.split('\n');
对于(变量i=0;i0)
if(x[i].indexOf(“:/”)<0
window.open('http://'+x[i]);
其他的
窗口打开(x[i]);
}

这里是javascript的一个基本实现——我将它分离到一个外部文件中

HTML

<a href="" id="multi-link-opener" onclick="openMultipleLinks(myLinks)">Click To Open Links</a>

JS

var myLinks = [
"https://google.com",
"https://www.w3schools.com/jsref/met_win_open.asp",
"https://developer.mozilla.org/en-US/docs/Web/API/Window/open"
]

function openMultipleLinks(links) {
  for (var i = 0; i < links.length; i ++) {
    window.open(links[i]);
  } 
}
var myLinks=[
"https://google.com",
"https://www.w3schools.com/jsref/met_win_open.asp",
"https://developer.mozilla.org/en-US/docs/Web/API/Window/open"
]
函数OpenMultipleLink(链接){
对于(变量i=0;i
请注意,用户必须启用弹出窗口才能打开页面


这就是它的作用:

我想说这些否决票可能是因为这种行为会让大多数用户感到惊讶-一次点击,一个窗口是非常正常的。为什么是空白窗口?为什么会有愚蠢的链接文本“点击这里”?@Paddy:不,否决票是因为问题陈述得不好。也许吧。我想这至少是一个直截了当的问题。也许-3有点苛刻,因为这可能是某种内部应用程序,或者不是什么大问题/需要的东西。不可靠,是的。是否值得在没有任何解释的情况下将其埋葬在地下?不,帕迪,正常吗?请原谅,如果您勾选了一堆消息并单击[打开所选项目]链接,那么如果只打开第一条消息,就会令人困惑和恼火。每当我们因为坏人做了很多事情而回避这些事情时,我们就表现得好像这些事情只是为了滥用而存在的,这使得HTML现在更难编写(通过网站检查框架集,不允许使用iFrame等,这个列表一直在不断地出现……——在2015年底更有效,尽管这是从2011年开始的。此外,如果禁用JavaScript,则单击链接时不会发生任何事情。HTML中的链接最好是正常的,但是使用一个类(比如
yourlink
),然后使用jQuery将它们组合成一个链接,打开所有URL。这样你就可以在HTML中指定URL,而不是在JavaScript中。渐进式增强可以拯救我们所有人。太棒了,本。当你可以点击答案左边的复选框时,一定要将其标记为答案。虽然这在Firefox中仍然有效,但Chrome的弹出窗口拦截器现在阻止了第二个window.open(在Chrome 37和FF 32中测试)。JSFiddle:假设他想使用jQuery,但为了公平起见,他将其标记为jQuery。很好的方法这一个适合我。非常感谢。还有一件事:窗口将集中在末尾的onclick url上。:)
<ul class="links">
<li><a href="http://www.google.com/"></a></li>
<li><a href="http://www.yahoo.com/"></a></li>
</ul>

<a id="open-all" href="#">OPEN ALL</a>
$(function() { // On DOM content ready...
    var hrefs = [];

    $('.links a').each(function() {
        hrefs.push(this.href); // Store the URLs from the links...
    });

    $('#open-all').click(function() {
        for (var i in hrefs) {
            window.open(hrefs[i]); // ...that opens each stored link in its own window when clicked...
        }
    });
});
<script type="text/javascript"> 
    function open_all_links() {
        var x = document.getElementById('my_urls').value.split('\n');
        for (var i = 0; i < x.length; i++)
            if (x[i].indexOf('.') > 0)
            if (x[i].indexOf('://') < 0)
                window.open('http://' + x[i]);
            else
                window.open(x[i]);
    }
</script>



<form method="post" name="input" action=""> 
    <textarea id="my_urls" rows="4" placeholder="enter links in each row..."></textarea>
    <input value="open all now" type="button" onclick="open_all_links();">
</form>
<a href="" id="multi-link-opener" onclick="openMultipleLinks(myLinks)">Click To Open Links</a>
var myLinks = [
"https://google.com",
"https://www.w3schools.com/jsref/met_win_open.asp",
"https://developer.mozilla.org/en-US/docs/Web/API/Window/open"
]

function openMultipleLinks(links) {
  for (var i = 0; i < links.length; i ++) {
    window.open(links[i]);
  } 
}