JavaScript 本地工作方式与在线工作方式不同
我注意到一些在本地服务器上完美运行的 JavaScript 简单脚本在网上根本无法运行。
这怎么可能? JS 客户端脚本?有什么想法吗?
抱歉没有提供太多信息,还有我的英语。
我的问题是一个一般性问题。
例如:
$('#posticipa').click(function(){
var stato = $('#future').css('display');
if(stato == 'none'){$('#future').css('display', 'block');}
else{ $('#future').css('display', 'none');}
});
这段代码在我的 Ubuntu 9.10 本地 Apache 服务器上完美运行,并支持 Firefox 3.6、3.5、Google chrome 和 Opera。
当我将它上传到我的远程 CentOS 服务器(也运行 Apache)时,它不起作用。 Firebug 或控制台中不会显示任何错误;它就是不运行。
我在两台服务器上使用相同版本的 jQuery。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
检查浏览器中的控制台是否有错误。如果是 Firefox - 安装 firebug,如果是 chrome - 按 Ctrl + Alt + J。
Check console in your browser for errors. If it is Firefox - install firebug, if it chrome - press Ctrl + Alt + J.
这取决于您的脚本想要做什么。 “有什么想法吗?”是相当广泛的。但出于明显的安全原因,客户端脚本比服务器端有更多的限制。例如,如果您可以通过客户端 JS 访问客户端的文件系统,那么互联网上的任何网站都将能够控制您的系统。
JavaScript 安全限制
It depends on what your script is trying to do. "Any ideas?" is pretty broad. But client-side scripting has a lot more restrictions than server-side, for obvious security reasons. For example, if you could access the client's file system through client-side JS, any website on the internet would be able to take control of your system.
JavaScript Security Restrictions
看了你编辑的问题后,我认为很可能发生了两件事之一:
script
标记中的src
属性不正确。尝试在 JS 代码的早期位置放置一个
debugger;
行或一个alert
。这应该告诉您脚本是否被命中(调试器命令应该告诉 FireBug 进入调试模式,前提是您在加载页面时启用了 FB 的脚本标记)。如果没有命中,请确保脚本的
src
是正确的、可访问的 URL。如果是,请将该行稳步向下移动到代码中,直到它不再触发。这应该可以帮助您找出错误所在。Having looked at your edited question, I think it's most likely that one of two things is happening:
src
attribute in thescript
tag.Try putting a
debugger;
line or analert
somewhere very early in your JS code. That should tell you whether the script is getting hit (thedebugger
command should tell FireBug to go into debug mode, provided you have FB's Script tag enabled on when you load the page).If it isn't getting hit, make sure the script's
src
is the correct, reachable URL. If it is, move the line steadily down your code until it doesn't fire anymore. That should help you figure out where the error is.