仅在显示源代码时更改js文件的位置
changing a js file location only when the source-code is showed
我试图改变一个js文件的位置,当一个访问者显示源代码
javascript函数在访问者显示源代码时不起作用.
我的想法是创建一个文件,放一个javascript代码来删除文件,在这种情况下,文件不会被删除,如果有人显示源代码:
$check="$ip-$views-$id";
fopen("$check.txt","w"); //CREATING A FILE
// DELETING THE FILE ABOVE BY JAVASCRIPT , IT WON'T BE DELETED IF SOMEONE ENTERED VIA THE SOURCE-CODE MODE
?>
<div id="countno"></div>
<script type="text/javascript">
$('#countno').load('del.php?name=<?echo $check;?>&location=' + ' #countno');
</script>
<?
if (file_exists("$check.txt")) { //IF SOMEONE SHOWED THE SOURCE CODE
$new_location="fake_location.js";
}
else{
$new_location=$old_location;
}
?>
<script src="<?echo $new_location;?>"></script>
现在的问题是,file_exists PHP函数显示该文件仍然存在,即使它已经被javascript代码删除了。
file_exists函数在javascript代码之前执行!
任何帮助/解决方案,使PHP函数检查文件后,javascript代码?我知道这有点不可能,但值得!
你所描述的是不可能的。PHP是服务器端语言,而javascript是客户端语言。因此,页面上的PHP总是在页面上的Javascript执行之前执行。当你这样做的时候,没有办法让你的Javascript先执行。
相反,您可以做的是将PHP和Javascript分开。让你的file_exists
在另一页检查。例:check.php
.
if (file_exists("$check.txt")) {
echo "fake_location.js";
} else {
echo $old_location;
}
然后使用ajax调用向check.php
发出请求,并根据check.php
的输出加载其他脚本。
<script>
$.ajax({
method: "GET",
url: "check.php"
})
.done(function(script) {
$("#check").attr("src", script);
});
</script>
<script id="check"></script>
然而,如果你的目标是防止人们找出你的javascript的位置,这是不可能的。现在大多数浏览器都可以在HTML发生变化时检查它。他们可以看到加载的脚本,而不必单独加载源代码。
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面