用script标签加载

勿忘初心2018-10-29 11:20

此文已由作者杨帆授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


注:经过更深入的测试,实在不好意思,这篇文章是有问题的 更改script的type属性 并不能通过src来加载,只能在该文件中解析。 requirejs 的text原理是通过XHR载入的)

测试如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
	</head>
	<body>
		<script id="test1" type="text/html">
			<h1><% title %></h1>
		</script>
		<script id="test2" type="text/css">
			body{background-color:#0CC;}
		</script>
		<script>
			alert(document.getElementById('test1').innerHTML + '->' + document.getElementById('test2').innerHTML);
		</script>
		<script id="test3" type="text/html">
			<p><a href="#">[UserName]:</a><span >[CreateDate]</span></p>
		</script>
		<div id="comment_ul_2"></div>
		<input type="button" value="click me" onclick="add()" />
		<script type="text/javascript">
			var reg = new RegExp("\\[([^\\[\\]]*?)\\]", 'igm');
			function add() {
				var html = document.getElementById("test3").innerHTML;
				var source = html.replace(reg, function(node, key) {
					return {'UserName': 'yang', 'CreateDate': '2014-10-21'}[key];
				});
				document.getElementById('comment_ul_2').innerHTML = source;
			};
		</script>
	</body>
</html>

text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理

text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理 and so on

MIME_type

MIME 类型。其中一些值:

  • text/javascript

  • text/ecmascript

  • application/ecmascript

  • application/javascript

  • text/vbscript



网易云免费体验馆,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请点击


相关文章:
【推荐】 nova状态同步
【推荐】 网易对象存储NOS图床神器
【推荐】 微服务监控探索