2017-06-09 99 views
0

我有一個文本文件,其中有一些行包含一些關鍵字。我的練習是從該文件中提取信息,並創建一個HTML文檔,在文本文件中插入留置並帶有適當的標籤。 例如: 這是文本文件:跳過JavaScript中window.open()的彈出窗口攔截器

This should be in a html tag with START as class name 
THIS SHOULD BE IN A HTML TAG WITH CAPITALS AS CLASS NAME 
This should be in a HTML tag with CODE as class name 

現在編寫JavaScript程序對這些行插入到HTML是很容易的。我只是用一些像這樣的字符串處理:

if(contents[i].indexOf(" CODE")!=-1){ 
          w.document.write("<p class='code'>"+lines+"</p>"); 

         } 

我將所有這些寫入一個新的window.open對象。主要問題是彈出窗口阻止程序不允許使用此功能。那麼,有沒有其他辦法可以做到這一點?我無法物理生成html文件,我需要隨時生成它,所以window.open是我能想到的唯一方法。有沒有其他的方法可以實現這個目標? (我可以只使用

w=window.open("somefile.html") 
w.document.opne("somefile.html") 

其中somefile.html任何文件繞過彈出窗口攔截器。但我並不想這樣做,這似乎不是一個乾淨的方式。)

更多了,對於我來說,訪問該文件,我必須將其託管在服務器上(目前我正在使用節點爲此提供的http-server)是否有其他替代方法?

我不想使用jquery,我希望用vanilla javascript來完成所有這些。但是如果有可能使用Jquery做這件事,請告訴我。

非常感謝你:)

回答

1

原則上,彈出窗口被所有的現代瀏覽器阻止。他們會問你是否要允許他們,但否則他們不會允許他們。

如果它是另一個文件,也許一個iframe可能是有用的?


這裏有一堆額外的解決方案:

  • 有一個假彈出。所有數據都浮於常規內容之上。你可以添加一個'x'按鈕來關閉它並實現一些拖放功能。視覺效果非常相似,但用戶不能將其視爲OS級窗口。
  • 嘗試以某種方式將內容集成到常規頁面。無論是iframe還是隻是普通的內容。現代設計已經超越了在單機之外需要彈出窗口和其他內容的階段。此外,在手機上,彈出窗口的工作原理還不清楚。
  • 在新選項卡中打開內容。這基本上只是使用<a>標籤。您可以將您希望的內容放入鏈接的片段中,並且打開的頁面可以對片段進行解碼並顯示所需的信息。可能無法使用巨大的內容。
  • 有更好的流程允許彈出窗口。通知用戶您的網站需要彈出窗口並使其停用。一種好的方法是提供一些觸發彈出窗口的按鈕,這將被阻止。然後通知他們告訴瀏覽器允許彈出窗口,因爲他們中的大多數都會顯示彈出窗口被阻止的情況。然後,您可以顯示常規彈出窗口,避免用戶遺漏數據。
+0

在另一個窗口打開iframe並在那裏寫入也會計爲彈出窗口阻止程序? 我沒有在頁面中放置Iframe的地方,所以我需要在新窗口中打開它。 – Vamshi

+0

另外,我需要一個大的iframe的另一個原因是因爲文本文件的大小可能會非常大。我無法在我的主頁中容納一個大的Iframe。 – Vamshi

+0

現實沒有。任何可能會導致用戶惱怒的事情都會被瀏覽器阻止:彈出窗口,發生的警報消息太多等等。我添加了一堆額外的解決方案。 –

相關問題