0
我知道跑遠程JavaScript是添加一個標籤像運行從瀏覽器遠程JavaScript,而無需修改DOM
<script src="example.com/ascript.js"></script>
是否有可能做的Javascript類似的事情,而不需要修改DOM作爲唯一的辦法部分通話?
我知道跑遠程JavaScript是添加一個標籤像運行從瀏覽器遠程JavaScript,而無需修改DOM
<script src="example.com/ascript.js"></script>
是否有可能做的Javascript類似的事情,而不需要修改DOM作爲唯一的辦法部分通話?
如果你問的是是否可以從遠程源動態加載Javascript並運行它而不插入腳本標籤,那麼有一些方法可以做到這一點(儘管目前還不清楚它爲什麼是暫時的負擔插入<script>
標籤並讓系統自行加載並運行代碼)。
簡而言之,您可以使用Ajax調用將一些Javascript加載到字符串中,然後您可以在該字符串上運行eval()
以執行它。這將對您在頁面上下文中運行來自外部源的Javascript的所有常見安全性問題提出警告。
Ajax調用(與插入到DOM中的<script>
標記不同)將受同源限制的限制,除非目標站點允許使用CORS進行訪問。
例如:
fetch(someScriptURL).then(function(data) {
eval(data);
});
這不完全運行的遠程調用。它將導入一個JavaScript文件作爲頁面的一部分加載。如果文件調用一個函數,它會運行。但它也可以稍後加載函數。 這不會修改dom,它會加載到頁面中,但這不是一個dom元素。它只是加載JavaScript。 –
@HattanShobokshi看起來像我找到更多的信息,如果我搜索「加載」而不是「運行」。謝謝。 – djechlin
這不是一個遠程調用,而是一個腳本標記(即使有一個外部src)仍然是一個DOM元素。沒有COORS訪問權限,您不能影響其他人的服務器。 – PHPglue