簡體   English   中英

1行js從另一個地方導入帶有js的html代碼?

[英]1 line js import html code with js inside from another place?

我想創建一行.js導入,可以為我的網頁添加外部功能。 與插件等非常相似

這就是我目前擁有的:

<!--index.html-->
<head>
</head> 
<body> 
  <!-- Here is my 1 line script -->
  <script src="importExHtml.js"></script>
</body>

這是我要導入的腳本:

/*importExHtml.js*/

function createRequestObject() {
    var obj;
    var browser = navigator.appName;
    if (browser == "Microsoft Internet Explorer") {
        obj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        obj = new XMLHttpRequest();
    }
    return obj;
}

var http = createRequestObject();

function sendReq(req) {   
    http.open('get', req);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {    
    if (http.readyState == 4) {
        var response = http.response;
        var newdiv = document.createNode("div");
        newdiv.innerHTML += response;
        document.body.appendNode(newdiv);
    }
}

sendReq("external.html");

這個代碼我在這里找到。 它將ajax請求發送到另一個頁面為此我使用Web服務器為Chrome發送ajax req到html我有external.html

**external.html**

<!-- For example here I import jquery etc. -->
 <script src="other.js"></script>

 <script type="text/javascript">
    alert("Hello from external");
 </script>

<h1>hello!</h1>

一切正常,我在index.html上得到<h1>hello!</h1>但是來自external.html的腳本不起作用。 我該如何解決? 或許我的願景完全不正確?

您不能直接將<script>標記添加為文本。 好吧,你可以添加它,但代碼不會運行。 這就是腳本必須通過document.createElement('script');注入的原因document.createElement('script'); 而這又無法在您要導入的代碼中運行。

解決方案:僅導入HTML。

立即加載所有JS -minified-並使用jQuery的.on()或類似的東西來處理DOM中不存在的事物的事件。

至於警報,使用XHR回調在加載外部HTML后運行一些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM