我尝试搜索,但找不到这个答案,因为它有点具体。
在标头.php(即网站的标头)中,包含了一些脚本以使jQuery正常工作。除此之外,还有工作脚本.js,以及我的书面脚本。它的设置是这样的:
<script type="text/javascript" src="<?=TEMPLATE?>js/workscripts.js"></script>
<script type="text/javascript"> var query = "<?=$_SERVER['QUERY_STRING']?>";</script>
在文件workscripts.js
中,有一个功能可以在单击链接时切换cookie。在这里:
$(document).ready(function(){
/* View switch*/
$(document).ready(function(){
if($.cookie("display") == null){
$.cookie("display", "grid");
}
$(".grid_list").click(function(){
var display = $(this).attr("id");
display = (display == "grid") ? "grid" : "list";
if(display == $.cookie("display")){
//if the button is the same as the cookie
return false;
}else{
//if the button is different
$.cookie("display", display);
window.location = "?" + query;
return false;
}
});
});
/* View switch*/
});
它在视图之间切换,并基本上将其设置为cookie。
一切正常,我问你的问题是:如果workscripts.js
在代码中首先,然后在它之后设置变量,为什么这会起作用?JavaScript 是否作为一个整体工作,在哪里添加<script></script>
并不重要?据我了解,<script>
的定位应该是相反的,首先我们设置一个变量查询并发送它,然后我们包括workscripts.js
?
另一个问题:为什么我们不能直接在包含workscripts.js
的地方添加变量查询?如果我们在代码中包含 JavaScript 文件,我们就不能在标签之间写入任何东西吗?
在文档
就绪事件触发之前,workscripts.js
中的代码不会尝试访问变量。
在解析完所有 HTML 之前,这不会触发,因此所有脚本元素都将被解析并执行它们的脚本(尽管不一定是它们的所有函数)。
为什么我们不能直接在包含工作脚本的地方添加变量查询.js?如果我们在代码中包含 JavaScript 文件,我们就不能在标签之间写入任何东西吗?
脚本元素只能加载单个脚本。如果它具有 src 属性,它将从 URL 加载它。如果它没有脚本元素,它将从内联加载它。