2013-03-08 166 views
6

我正在觸發Window.open();命令。在另一個選項卡中打開鏈接頁面。我想要的是當我點擊鏈接時,鏈接將在新窗口中打開,但應該位於同一頁面上。如何在使用window.open時保留在當前頁面

這可能嗎?

目前我正在使用這樣的。

function AddToDatabase(url) { 
      window.open(url, "_blank"); 
} 
+0

瀏覽器設置控制window.open進行處理。 – j08691 2013-03-08 17:15:57

+1

我們可以在客戶端處理任何插件嗎? – Moiz 2013-03-08 17:16:40

+4

你的問題沒有意義。你想在新窗口中打開當前頁面嗎?這是可能的,儘管這不符合你的代碼是否它實際上是一個新的窗口或標籤。 – 2013-03-08 17:18:50

回答

10

使用_self代替_blank。

window.open(url, "_self"); 
  1. _blank - 網址加載到一個新的窗口。這是默認
  2. _parent - URL被加載到父框架
  3. _self - URL替換當前頁面
  4. _top - URL替換可以加載名稱的任何框架集 - 窗口的名稱

欲瞭解更多詳情。見This Link

+0

與window.location不同。 href = url'?我的意思是* not * a pop-up。 – 2013-03-08 17:25:27

+2

爲什麼這個CW? – 2013-03-08 17:28:43

+0

window.location.href是一個屬性,它會告訴你瀏覽器當前的URL位置。屬性頁面將被重定向,其中window.open將爲該URL打開新窗口,此外,您可以將參數傳遞給windows.open,例如顯示工具欄,顯示狀態欄,窗口的寬度和高度等。 – 2013-03-08 17:31:02

0

這裏有一個彈出式下的一個例子:

var url = "example.com"; 
window.open(url, "s", "resizable=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, copyhistory=no").blur(); 
window.focus(); 

如果這是你在找什麼,想怎麼樣。從Web開發的角度來看,這是非常不道德的,但它可以完成。

+0

在Chrome中,如果窗口已經打開,這似乎工作。第一次會彈出,但是如果該窗口已經打開,那麼pop-under會起作用。 – 2013-03-08 17:29:39

+1

是的,彈出窗口是網頁瀏覽器已經注意防止的東西。 – 2013-03-08 17:30:41

0
<html> 
<body> 

<script> 
myWindow=window.open('','','width=200,height=100') 
myWindow.document.write("<p>This is 'myWindow'</p>") 
myWindow.focus() 
</script> 

</body> 
</html> 

您應該確定窗口的寬度和高度。

看看這個演示:http://jsfiddle.net/XyJW5/但不要忘記,讓您的瀏覽器彈出本網站

+1

如果我不得不允許某個網站的彈出窗口,那麼你做錯了什麼。如果您將此代碼放入點擊處理程序中,則不會被大多數瀏覽器阻止。 – 2013-03-08 17:37:06

+0

在Chrome中,這會導致彈出窗口,而不是彈出窗口。 – 2013-03-08 17:38:29

+0

@RocketHazmat此示例僅用於顯示僅爲窗口定義寬度和高度的重要性。 – SaidbakR 2013-03-08 17:51:37

2

你的代碼不應該被改變頁面。你打電話給AddToDatabase()?它是否來自a href標籤?如果是這樣,默認操作是從鏈接發生,你需要防止這種情況。

您可以設置href屬性javascript:void(0)

<a href="javascript:void(0)" onclick="AddToDatabase('myUrl')">Add URL</a> 

或者你可以有onclick屬性return false

​​
1

我知道這個問題是超級老,但它完美地描述這個問題我需要回答,我能夠想出一個體面的解決方案,所以我想我會在這裏發佈。這是一個有趣的解決方法。

本質上你設置了一個超時延遲轉發當前頁面到新的url,然後在新標籤中打開當前url。所以:

function open_hidden_tab(new_url) { 
    var thisTimeout= setTimeout(function() { 
     window.location.href= new_url; 
    }, 500); 
    var newWindow= window.open(window.location.href); 
    if(!newWindow) { 
     clearTimeout(thisTimeout); 
     alert('Please allow pop-ups on this site!'); 
    } 
} 
open_hidden_tab('https://google.com'); 

很顯然,你應該在網站上展示,而不是使用惱人警報功能的某種錯誤信息,但它爲這個例子的目的。

希望這可以幫助別人!

1

你可以使用這個。

<a href="terms.html" onclick="window.open(this.href, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=400,height=600');return false;" />Terms & Conditions</a> 

其作品對我來說

相關問題