2010-11-08 85 views
0

相關但是處於休眠狀態:Javascript to open URL within a new Tab和其他許多...有沒有辦法強制在標籤中打開「onclick」新窗口?

我有一個客戶堅持特定鏈接需要在新選項卡而不是窗口中打開。它是由一個表單提交按鈕的「點擊」事件產生的,由PHP的文檔中的jQuery的功能,看起來像這樣叫:

function newTabLink($element,$url) {   

    ?><script language="JavaScript" type="text/javascript">//<![CDATA[ 
     jQuery(document).ready(function() { 
      jQuery('<?php echo $element; ?>').click(function() { 
       window.open("<?php echo $url; ?>",'_blank'); 
       }); 
      }); 
      //]]></script><?php  
} 

我也有我的樣式表的CSS聲明,它試圖迫使新窗口爲選項卡而不是新窗口:

* { target-new: tab !important; } 

的CSS 目標新財產似乎在IE9工作,強制彈出的成片。 FF和Chrome/Safari都默認爲標籤瀏覽,即使沒有該屬性集。但我怎麼能強制IE8和7在標籤中打開這個特定的鏈接?

任何想法?

+0

,我願意嘗試迂迴的解決方案(即設置表單動作爲一個新的窗口,然後返回到原始窗口進一步邏輯/處理表單)...不期待我的問題的線性答案,但創造性的解決方法... – goldenapples 2010-11-08 23:37:23

回答

2

你不能可靠地做到這一點。如您所知,Firefox和WebKit瀏覽器可以配置爲打開新窗口,但用戶需要。我想希望 IE9可以配置爲覆蓋該「風格」的行爲。 (編輯 —這似乎是一個CSS3草案的事情 - 我希望親自它死在委員會)

+1

單獨希望+1。 – 2010-11-08 23:32:55

+0

CSS3包含許多覆蓋瀏覽器默認行爲的屬性:「target-new」(tab/window)和「target-position」(前/後)。是的,用戶設置優先,但我不關心重寫這些,只是瀏覽器的默認行爲... – goldenapples 2010-11-08 23:34:55

+0

那麼這是最好的事情;我從來沒有見過任何控制這種行爲的API。我知道Safari對頁面代碼的影響非常嚴格,只會影響桌面活動,而這看起來像屬於該類別(而不是「頁內」內容)。 – Pointy 2010-11-08 23:37:58

相關問題