当我将所有javascript编译为一个文件时,我如何检测页面
how can I detect page when I compile all javascript to one file
我将所有不同页面的javascript编译到一个文件中,所以我必须为我的all.js识别页面。我可以把一个隐藏的元素在我的页面,让javascript检测到这个元素,但我不喜欢这个解决方案,有没有其他的方法来做到这一点?
您可以使用location.href
(或location
对象中的另一个字段)来访问url。
然而,更好的方法是在body标签上使用data-
属性,例如<body data-page="whatever">
,然后使用$('body').data('page')
来检索值。
如果您的脚本是基于页面的,那么将它们编译成一个脚本是一个坏主意,单独加载文件,它将更轻,肯定会增加一些性能
我不确定,为什么你需要这个,但在一般情况下,它不是一个好的做法来改变动态改变javascript文件的内容,因为你是禁用javascript缓存,什么可以性能问题以后。
无论如何,你可以从另一边解决它,使用all.js来检测页面,你在哪里,然后你可以使用这些信息,动态加载正确的javascript文件,就像下面的例子
document.write('<script src="'+location.pathname+'.js"></script>');
它将加载与您相同的文件,只是使用。js扩展名。比如在index。html页面上它会加载index。html。js文件
我几乎总是使用MVC框架,并倾向于将我的动作和控制器作为类放在body元素
<body class="main_controller index">
可以让你做这样的事情:
$(document).ready(function(){
//Only for lessons#search
if (!$(body).hasClass('lessons search')) {
return;
}
function close_style_filter_box() {
$('#style_filter_box').slideUp();
}
});
$(document).ready(function(){
//Only for main_controller#index
if (!$(body).hasClass('main_controller index')) {
return;
}
function do_something_else_on_this_age() {
....
}
});
另一种方法是使用javascript变量:
var PAGE = 'page1';
相关文章:
- 如何检测负责网站某些部分的JavaScript根文件
- 在PHP中检测AJAX请求来自哪个文件
- Javascript:检测文件读取器中是否有图像
- JQuery文件上载未检测到动态添加的输入
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- 使用Javascript数组检测媒体文件并返回所有URL
- php检测浏览器窗口宽度,然后包括适当的php文件
- blueimpjquery文件上传如何检测按下取消按钮
- 如何在使用Grunt时检测不同文件夹中相同的文件名
- 检测在与先前选择的文件相同的文件上选择的文件
- 用于检测文件下载的 Chrome API
- 如何检测文件的下载是否已完成
- jQuery如何检测文件当前是否正在上传(事件正在运行)
- 如何检测文件下载完成使用javascript
- 什么会导致npm live-server停止检测文件更改?
- 如何检测文件扩展与javascript FileReader
- jquery如何检测文件输入元素的变化
- 检测文件大小之前保存它
- 检测文件何时在浏览器中上传
- 使用javascript检测文件传输结束