JavaScript-javascript引入html关联的javascript文件

发布于 2016-11-14 03:29:52 字数 285 浏览 1308 评论 3

javascript运行在客户端的浏览器中,我之前做一个练习,我在<head>标签中追加了一些<script>标签,然而这些javascript标签都不能正常加载。然后我就理了一下整个执行过程:
①web服务器将根据需求产生的页面全部发送到客户端浏览器。
②浏览器解析执行script。
③修改html的dom结构。(增加了的资源链接是否会重新像服务器发送请求,求解答。)

静态页面的执行过程应该是直接装载文件吧,之后遇到新链接浏览器是否也会重新请求。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜无邪 2017-10-08 16:29:28

var script=document.createElement('script');
script.text='alert();';
document.body.appendChild(script);

这样各浏览器都是可行的,像你那样

document.body.innerHTML+="https://www.wenjiangs.com/wp-content/uploads/stackoverflow/202207/<script>alert();</script>";

是不行的

我是理解浏览器只渲染innerHTML中的内容
而要执行脚本只能使用appendChild(script)
或者 修改script.text才能执行

归属感 2017-03-20 14:28:09

是重新请求的,我不知道这个符不符合你的但是

 <script type='text/javascript'>...</script>//这个就可以正常加载
<script type='javascript'>...</script>//这个绝大部分不能正常加载

浮生未歇 2017-01-19 11:56:57

做了些实验, 楼主直接append一个字符串的方式来引进js是可以的, 但是还不够好.
先给出例子, 在楼主基础上稍微改了改:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery ui</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$("head").append('<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>');
$(function(){
$("#dialog").dialog();
});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information.</p>
</div>
</body>
</html>

firebug中可见, jquery-ui.js确实被加载了, 但是我没有看到jqueryui的dialog效果, 究其原因, $("#dialog").dialog();在jquery-ui.js在被加载完成前就执行了. 那么稍微修改一下:

<script type="text/javascript">
$("head").append('<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>');
$(function(){
setTimeout(function(){$("#dialog").dialog();}, 5000);
});
</script>

嗯,虽然有延迟, 但是确实可以看到jqueryui的dialog效果了.
不过这种解决方案太烂了,万一js 5秒都没有加载完呢? 我找到jquery的getScript方法, 效果还不错, 最终代码为:

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery ui</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#dialog").hide();
$.getScript("http://code.jquery.com/ui/1.10.3/jquery-ui.js", function(){$("#dialog").dialog();});
});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information.</p>
</div>
</body>
</html>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文