[英]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.