87,993
社区成员
发帖
与我相关
我的任务
分享<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<script src="../lib/jquery-2.1.4.js"></script>
</head>
<body>
<div>nothing</div>
<script type="text/html" id="apple">
<div>
一个苹果
</div>
<script type="text/javascript">
var num = 1;
alert(num);
</script>
</script>
</body>
<script type="text/javascript">
console.log($("#apple").html());
//console.log(document.getElementById('apple').innerHTML);
</script>
</html>


<script src="js/jquery-3.1.1.js"></script>
<style>
html,body {
width: 100%;
height: 100%;
}
* {
margin: 0;
padding: 0;
}
.page {
width: 100%;
height: 100%;
background-color: red;
position: absolute;
z-index: 1;
top: 0;
display: none;
}
.js_show {
display: block;
}
</style>
</head>
<body>
<button id="open">点我</button>
<script>
$('#open').click(function() {
$('#open').after('<div class="page"></div>');
$('.page').append($('#button').html());
$('.page').addClass('button');
$('.page').addClass('js_show');
});
</script>
<script type="text/html" id="button">
<button>我是按钮页面</button>
</script>
</body>


<script type="text/html" id="tpl_xx">模板页</script>
模板页中有html代码,也有js代码。(这样就出现了script标签嵌套)
我看了下官方的js文件,
某博客对该js文件的大概介绍
看的不是很懂,在_go方法中有如下两段代码:
var html = $(config.template).html();
var $html = $(html).addClass('slideIn').addClass(config.name);
this.$container.append($html);
我感觉就是在这边根据hash(url中#后面的内容)变化,取到对应模板页中的html内容,然后重新渲染页面。(也不知道是不是这样子)
我现在遇到的问题就是,模板页中的js方法不能执行了,然后同时也发现了jquery的html()方法会出现<script>标签匹配错误的情况。因此猜想是否因为这个原因,导致模板页代码不完整,进而导致模板页中的js代码不被执行。
告诉了你原理你应该就知道拉
这时动态生成script的原理嘛
给你加个id
var script= document.createElement('script');
var str = 'var num = 1;alert(num);';
document.getElementById('abc').appendChild(script);
script.innerHTML = str;
<body>
<div>nothing</div>
<script type="text/html" id="apple">
<div>
一个苹果
</div>
</script>
<script type="text/javascript">
var num = 1;
</script>
</body>
我要请教的是在script嵌套的情况下,如何通过html()方法正确获取网页内容,不出<script>标签匹配错乱的情况。