2016-09-16 95 views
0

我有一個顯示跨域頁面。一些網站的工作,有些不。 我不希望顯示默認錯誤頁面(對於每個瀏覽器都不同),當URL由於任何原因而未加載時。如何在<iframe>上顯示自定義內容(如果URL未加載)

enter image description here

我想顯示自定義的內容。

已經嘗試過/搜索:

  1. 不會觸發任何錯誤事件,所以JavaScript的<iframe onerror=="callback">不工作。
  2. 與ajax的跨域請求將返回失敗,狀態碼= 0,因此$.get(url).then().catch()不起作用。
  3. 我可以在服務器端測試URL,但問題是針對客戶端的。
  4. <iframe onload="callback">沒有提供正確加載URL的任何信息,只是DOM元素。
  5. 由於所有瀏覽器中的安全功能,當它跨域時,無法訪問內部內容。

有沒有辦法做到這一點?

回答

1

我知道你沒有用php標記這個,但是後端語言可以幫助你。在iframe源文件中添加一個後端腳本(例如某些php)以檢測URL是否有效,然後相應地顯示內容:

//iframe src 

<?php 

    $headers = get_headers($iframeURL); 

    if (strpos($headers[0], "404") !== false) { 

     $HTML = $customContent; 

    } else { 

     $HTML = $standardContent; 

    } 

?> 

//in iframe document body 

    <body><?php echo $HTML ?></body> 
相關問題