2017-04-25 54 views
0

我試圖從另一個網頁獲取外部頁面的JavaScript

我已經檢索源元素創建在JavaScript中會創建一個視頻的HTML元素的功能,並獲得源的HTML元素看到其他問題的答案使用jQuery或一些Ajax的東西,但沒有人真正解釋自己,所以我能做的就是複製並粘貼他們說的任何東西到我的頁面,並得到一個錯誤說「$」是未定義的(我更新javascript,如果你不能告訴。還沒有使用任何Ajax或jQuery的)。

function loadSource(url){ 
    var vid = document.getElementById("vid"); 
    var src = <get source element with id "mp4Source" from the specified url> 
    vid.appendChild(src); 
} 
+0

閱讀文檔:http://api.jquery.com/jquery.ajax/使用起來非常簡單。 – Gerardo

回答

1

爲什麼你要$爲未定義的原因是因爲你還沒有加入jQuery庫。

這是一個很好的問題,解釋如何獲取建立here

以上你的JavaScript,你需要包括jQuery庫。

如何包括jQuery庫

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 

至於加載外部視頻元素示例,你需要做一個AJAX請求包含該元素的URL。 AJAX是一種執行異步HTTP請求的方式,例如在不刷新網頁的情況下對URL進行的請求。的AJAX如何可以用於從外部URL拉HTML的AJAX

function loadSource(url){ 
    $.ajax({ 
     url: "<URL containing the HTML>", 
    }) 
    .done(function(html) { 
     $("#vid").append(html); // append the html to the element with the ID 'vid' 
    }); 
} 

更多信息可以在http://api.jquery.com/jquery.ajax/

你也應該看看JQuery的基礎知識中找到

例,如看here。如何在您的代碼中使用此示例是將document.getElementById("vid")替換爲$("#vid")

+0

在done函數中,html參數是給定url的整個html值嗎?如果是這樣,我可以專門拉出一個元素,像我可以用當前文檔給出一個id嗎?或者我必須使用字符串函數來提取我需要的信息?或者是否可以過濾提供給ajax函數的對象中的結果? – JereTheJuggler

+0

是的,'html'是一個字符串,包含在<<包含HTML>'的URL中找到的所有HTML。您可以使用字符串函數來提取特定元素,例如http://stackoverflow.com/questions/14867835/get-substring-between-two-characters-using-javascript。一旦你更瞭解JQuery,你可以使用'$(「#vid」)。closest(「」)''。但這超出了這個問題的範圍。 –

+0

所以,現在我已經添加了jquery src到我的腳本標記我得到的錯誤說,我的其他功能沒有定義它們時。如果我嘗試將它分解爲2個腳本標記,其中1個用於所有其他函數,1個用於jquery,我無法再引用jquery函數。 – JereTheJuggler