2016-11-05 82 views
0

我正在構建一個web應用程序,使我的業務在前端的HTML/CSS/jQuery和後端的python中更加自動化。不能將鏈接元素添加到jQuery的iframe

我用jQuery編寫了一個簡單的腳本,用ajax調用一個路由,並接收數據爲json,之後解析它並根據長度返回一個iframe列表:如果我們在該列表中有20個項目,並且我們想要每頁5個項目,創建4個頁面並在每個鏈接中放置5個iframe。

這裏的負責此功能的代碼:

 $('.pageContent').empty() 
         for (var i = 0; i < vidPageList.length; i++){ 
          var videoUrl = vidPageList[i].videoLink 
          var postUrl = vidPageList[i].postLink 
          console.log(postUrl) 
          $('<iframe src ="'+videoUrl+'" class = "videoEntry" width = "360" height = "250"></iframe>').appendTo(".pageContent") 
          $('<a class = "postLink" href = "'+postUrl+'"> Video link </a>').appendTo(".videoEntry") 
         } 

問題:

iFrame是完美的補充,但這些鏈接不是在所有加入的,我不知道爲什麼,控制檯沒有顯示任何錯誤,我試圖調試postUrl的值,它們都是正確的,爲什麼這樣做?它看起來像負責添加鏈接的最後一行不起作用,我還試圖用一個appendTo()調用添加所有內容,但它只添加了內置頁框,我在這裏錯過了什麼?

+0

Iframes創建自己的窗口。你必須首先進入那個iframe窗口......在它被加載之後。您不能直接附加到iframe元素本身,如果iframe來自不同的域,則根本無法訪問iframe,除非您控制iframe頁面內的代碼 – charlietfl

+0

並且如果我使用div並添加iframe並添加該div的鏈接? –

+0

這些網址甚至是來自同一網域的網頁嗎?使用jQuery if if是來自同一個域可以使用contents()內部iframe進入iframe iframe已經加載後雖然 – charlietfl

回答

0

您的選擇器第一次運行時,沒有.videoEntry類,因爲它在iframe中。在追加之前首先製作所有html內容可能很有用。