2013-06-26 26 views
2

我已經找到了一些關於這個問題的答案,但是在我的未解決方案中他們覆蓋了與調用文件位於相同目錄中的庫。如何在JS文件中使用外部(http)庫

在我的申請,我現在有index.html頁面的腦子裏有下面的代碼:

<script type="text/javascript" 
      src="https://apis.google.com/js/api.js"></script> 

我想要做的是負載和使用.js文件中相同的庫。該應用程序是客戶端,目前正在使用以下框架: 「serveup」,「下襬」,「es5-shimify」,「json2ify」,jqueryify「

我試過使用jquery'require',但我有錯誤消息稱該模塊沒有被發現,我猜測它在找一個本地文件

+1

Google api.js文件添加了全局的'window.gapi'變量,所以只要HTML文件的所有庫(包括那個)都在您的任何JS文件之前加載(並且我正在理解您的問題正確),你應該可以在你自己的JavaScript中使用'gapi'並且擁有它的所有功能,而不必直接在你自己的文件中包含這個JS文件(因爲它們都被加載到同一個HTML頁面中) 。 – ajp15243

+0

@ ajp15243看起來你是對的..我對JS完全陌生,完成這個項目的時間很短。謝謝你的評論。 – Giannis

+0

很高興我可以幫助:) – ajp15243

回答

2

試試這個:

var fileref=document.createElement('script'); 
    fileref.setAttribute("type","text/javascript"); 
    fileref.setAttribute("src", "https://apis.google.com/js/api.js"); 
0

我有點模糊這個自己,但我似乎記得該腳本無法輕鬆調用來自其他域的腳本,以避免違反「單一來源」規則。

典型的技術是執行ajax請求,然後是eval,或者在標頭中注入一個<script>標記,這會使瀏覽器的解釋器獲取資源,但執行過程可能稍晚,具體取決於你希望完成什麼。

我爲此做了什麼是使用Require.js框架,它處理各種沙箱的各種古怪。讓你頭腦發呆有點困難,但也許值得。

+0

mat2000代碼似乎在工作,我只需要做一些更多的測試! – Giannis

+0

他的回答很好,而且會起作用。我喜歡Require.js,因爲它有助於管理大型依賴集,並附帶優化器。 – PaulProgrammer