2009-06-30 20 views
0

我正在編寫符合標準的XHTML Strict 1.0,因此在錨元素上包含HTML「目標」屬性將不會執行。用XHTML和Javascript編寫符合標準的彈出窗口的最佳方式是什麼?

我讀過使用JavaScript 2種根本不同的方式:

  1. 在文檔加載,找到rel='external'所有鏈接,並追加target='_blank'屬性。

  2. 使用HTML觸發一個JavaScript的popup(this)功能,這與window.open()打開窗戶onClick屬性。

這些方法現在是5-6歲,所以我希望事情從那時起就固化了。什麼是最好的方法來做到這一點?

+1

目標=「_空白」一直以來,據我所知,棄用了一段時間。你應該避免使用它。 – Evan 2009-06-30 20:08:31

回答

0

With JQuery and Iframes(或對象,而不是)

+0

爲什麼jQuery回答接受的答案?這個問題特別提出了「符合XHTML和Javascript的標準」。 – HNL 2014-07-25 03:51:57

2

有這樣做的沒有新的途徑,所以你已經發現是想要什麼就有什麼。

第一種方法是一種欺騙行爲。您正在使用Javascript在頁面加載後將非標準標記放在頁面中,以便最初加載的標記有效。腳本運行後,代碼無效。

第二種方法似乎更好也從另一個角度來看。鏈接將在頁面加載時立即按預期工作,與第一種方法相比,第一種方法在頁面上的所有內容加載完畢之後纔會更改鏈接。如果用戶很快並在加載最後一張圖片之前點擊鏈接,您仍然希望它進入一個新窗口。

0

盛放的彈出窗口經常阻止現代瀏覽器。

如果你想要一個漂亮的,跨平臺的方式來創建漂亮的輕量「彈出」窗口(實際上他們分享他們的父窗口),那麼也許使用JavaScript的部件庫像ExtJS的。

以下是我在我的JavaScript應用程序創建我的「幫助」彈出窗口。

// Loads help for just one window, i.e. non-tabbed. 
function helpShow (help_filename, help_title) { 
    if (! help_filename) { return; } 

    var help_url = '/edit/help/' + help_filename + '.html'; 
    if (help_window == null) { 
     help_window = new Ext.Window ({ 
      title: help_title, 
      autoLoad: help_url, 
      autoScroll: true, 
      closeAction: 'hide', 
      width: 460, 
      height: 600, 
      items: new Ext.Panel() 
     }); 
    } 
    help_window.setVisible (true); 
} 

一些CCS也使它們更漂亮。

相關問題