2016-09-28 39 views
0

我知道跑遠程JavaScript是添加一個標籤像運行從瀏覽器遠程JavaScript,而無需修改DOM

<script src="example.com/ascript.js"></script> 

是否有可能做的Javascript類似的事情,而不需要修改DOM作爲唯一的辦法部分通話?

+1

這不完全運行的遠程調用。它將導入一個JavaScript文件作爲頁面的一部分加載。如果文件調用一個函數,它會運行。但它也可以稍後加載函數。 這不會修改dom,它會加載到頁面中,但這不是一個dom元素。它只是加載JavaScript。 –

+0

@HattanShobokshi看起來像我找到更多的信息,如果我搜索「加載」而不是「運行」。謝謝。 – djechlin

+0

這不是一個遠程調用,而是一個腳本標記(即使有一個外部src)仍然是一個DOM元素。沒有COORS訪問權限,您不能影響其他人的服務器。 – PHPglue

回答

1

如果你問的是是否可以從遠程源動態加載Javascript並運行它而不插入腳本標籤,那麼有一些方法可以做到這一點(儘管目前還不清楚它爲什麼是暫時的負擔插入<script>標籤並讓系統自行加載並運行代碼)。

簡而言之,您可以使用Ajax調用將一些Javascript加載到字符串中,然後您可以在該字符串上運行eval()以執行它。這將對您在頁面上下文中運行來自外部源的Javascript的所有常見安全性問題提出警告。

Ajax調用(與插入到DOM中的<script>標記不同)將受同源限制的限制,除非目標站點允許使用CORS進行訪問。

例如:

fetch(someScriptURL).then(function(data) { 
    eval(data); 
}); 
相關問題