1行js从另一个地方导入带有js的html代码?

时间:2017-04-03 21:52:20

标签: javascript jquery html ajax import

我想创建一行.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请求发送到另一个页面 为此,我使用Chrome的Web服务器将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 中的脚本无效。我该如何解决?或许我的愿景完全不正确?

1 个答案:

答案 0 :(得分:0)

您无法直接将fmincon标记添加为文字。好吧,你可以添加它,但代码不会运行。这就是脚本必须通过<script>注入的原因,而document.createElement('script');又无法在您要导入的代码中运行。

解决方案:仅导入HTML。

立即加载所有JS -minified-并使用jQuery的.on()或类似的东西来处理DOM中不存在的事件。

对于警报,请在加载外部HTML后立即使用XHR回调。