我的网页上有javascript,但我需要向用户隐藏它(我不希望他们能够看到它,因为它包含游戏的一些答案。)
所以我尝试使用Jquery .load来隐藏内容(我使用该调用从外部js文件加载内容)。但它无法加载。所以我尝试了ajax,它也失败了。
也许问题来自于我正在尝试加载位于我的根目录中的文件,而原始页面位于“root / public_html / main / pages”中:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url : "../../../secret_code.js",
dataType: "text",
success : function (data) {
$("#ajaxcontent").html(data);
}
});
});
</script>
1)为什么我不能用ajax或load方法从根目录加载文件? 2)还有另一种方法吗?
PS:我将文件放在根目录中,以便人们无法直接从他们的浏览器访问它...
答案 0 :(得分:1)
1)如果文件无法通过网络浏览器访问,则无法通过ajax访问(ajax是网络浏览器的一部分
2)尝试/secret_code
而不是../../../secret_code.js
答案 1 :(得分:1)
您的系统设置是什么?你在使用CMS吗?
即使您在页面加载后将javascript添加到页面,使用firebug之类的工具的用户也可以查看它。我不认为你在做什么真的会确保它。另一种解决方案是,您可以缩小和混淆您在生产环境中使用的javascript。这将产生几乎不可读但功能正常的javascript代码。有许多工具可以运行代码来缩小和混淆它。您可以使用以下工具:http://www.refresh-sf.com/yui/
如果这还不够,那么也许你可以将游戏的答案放在服务器端并通过ajax拉出来。我不知道你的设置,所以我不知道这对你是否可行。
答案 2 :(得分:0)
您只能加载可直接从浏览器访问的文件,例如http://www.mydomain.com/secret_code.js
如果浏览器无法直接访问它,浏览器就无法通过ajax访问它。 然而,您可以使用.htaccess来阻止用户直接打开js文件,但这并不能阻止他们在google chrome或firebug控制台中查看它。
如果你想保密,不要让它进入浏览器。
答案 3 :(得分:0)
导航到URL,而不是目录。像
$.ajax({
url : "http://domain.com/js/secret_code.js",
..
答案 4 :(得分:0)
即使您动态加载内容,也可以使用firebug,fiddler或任何类型的代理轻松查看文件内容。我建议你使用obfuscator。用户更难找到答案
答案 5 :(得分:0)
看看jQuery.getScript()
函数,它是专为通过AJAX加载Javascript文件而设计的,应该可以满足您的需求。
答案 6 :(得分:0)
尝试jQuery的$ .getScript()方法来加载外部 但是,脚本文件可以使用Firebug或开发人员工具栏轻松查看脚本文件的内容!
答案 7 :(得分:0)
安全第一
您无法使用JavaScript访问根目录,因为人们会读出您的数据库密码,ftp密码为aso。如果可能的话。