欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

location.href如何在新窗口打开? AG chatgpt 有大用 有大大用

shiping1 的头像

我想点击某个按钮button 打开一个链接,但是不能用window.open 这样容易被浏览器屏蔽。

<input type="button" onclick="javascript:location.href='http://www.baidu.com'" value="点我啊!">
上面的代码是在本窗口中打开这个链接,能否该成在新窗口打开?
window.open ? 不过弹窗会被IE拦截

你换一种方式吗
javascript:location.href 
中的location 肯定是指定当前你打开的IE 的地址栏,
你用超级连接,不就很容易啊
设置超级连接的target='_blank'



<input type="button" onclick="javascript:window.open("http://www.baidu.com","_blank") " value="点我啊!">


location.href  没那个功能.
你可以综合1楼 和2楼,任选一个,根据你需要。

location.href  没那个功能

下面这个有大用 有大大用
<a id="tagOpenWin" target="_blank"></a>   
  <script language="JavaScript">   
  function openwin(url)   
  {   
  var obj = document.getElementById("tagOpenWin");   
  obj.href = url;   
  obj.click();   
  }   
  </script>   

  <input type="button" value="测试" onclick="openwin('http://www.cjol.com/');">


来自 http://bbs.csdn.net/topics/300169962  



javascript location.href 新窗口打开

在 JavaScript 中,要在一个新窗口或新标签页中打开链接,可以使用 window.open() 方法,而不是直接修改 location.href(后者会在当前窗口导航)。以下是两种常见方式的示例和说明:


方法 1:使用 window.open()

javascript
// 在新窗口/标签页中打开 URL window.open("https://example.com", "_blank");
  • 参数说明

    • 第一个参数是目标 URL。

    • 第二个参数 "_blank" 表示在新窗口/标签页中打开。

  • 行为

    • 浏览器的默认设置决定是新窗口还是新标签页(用户可自行配置)。

    • 某些浏览器可能会拦截弹出窗口,需确保调用是由用户触发的(如点击事件)。


方法 2:通过动态创建 <a> 标签 # OK 有大用

javascript
// 动态创建 <a> 标签并设置 target="_blank" const link = document.createElement("a"); link.href = "https://example.com"; link.target = "_blank"; link.click();
  • 优点

    • 更符合语义化,行为类似普通链接。

    • 较少被浏览器拦截。


为什么不直接使用 location.href

  • location.href = "url" 会在当前窗口导航,无法实现新窗口打开。


注意事项

  1. 浏览器拦截window.open() 可能被浏览器拦截,需确保在用户操作(如按钮点击)中触发。

    javascript
    button.addEventListener("click", () => {  window.open("https://example.com", "_blank"); });
  2. 安全性:跨域 URL 可能会受到限制(如无法通过 window.open() 访问或修改新窗口内容)。


总结

  • 推荐方式:优先使用 <a target="_blank"> 或动态创建 <a> 标签。

  • 编程式导航:如需通过代码控制,用 window.open(url, "_blank")

如果有更复杂的需求(如控制窗口大小),可以传递额外参数给 window.open(),但需注意浏览器兼容性和用户偏好。



普通分类: