我现在快要完成一份契约(Contract)了,但在最后一刻,我的大部分 javascript/jQuery 似乎无法在 PC 或 Mac 上的 Safari 中运行。
整个站点的设计采用渐进式增强和不显眼的 javascript 将 ?p= 链接转换为 # 哈希链接、淡入和淡出页面以及平滑翻转 - 所有这些都已停止仅适用于 Safari。
我读到 Safari 可能无法处理大型 .js 文件,但我的 jquery 页面不到 10k,而我使用的压缩 jquery 库大约为 55k。
这是我现在拥有的,适用于最新版本的 IE、FF 和 Chrome - test.cultureconquest.com
最佳答案
当我运行 jslint 时暴露出许多错误你的代码的主体。很多小东西,比如缺少分号。其他事情,例如将变量命名为“class”,这是 JavaScript 中的保留字,可能是个问题。
您有一些逻辑可以使用真正的 jQuery 习惯用法更好地处理。例如你这样做:
var class = $(this).attr("class");
class = class.substr(5);
var ext
if ( class == "ccm" ) {
ext = "cultureconquest.com";
}
if ( class == "gmail" ) {
ext = "gmail.com";
}
jQuery 有一个方法来测试一个元素是否包含一个类,hasClass()
var ext;
if ($(this).hasClass("ccm")) {
ext = "cultureconquest.com";
}
if ($(this).hasClass("gmail")) {
ext = "gmail.com";
}
我还注意到您正在使用 jQuery 的 livequery()
扩展。在 jQuery 1.3 中添加了等效方法 live()
。参见 live()
了解详情。
这些是一些要看的东西。如果您可以让您的代码通过 jslint 测试,我敢打赌您将通过很多方式让它在 Safari 中正常工作。
关于javascript - Safari PC/Mac 中的 jQuery/JavaScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159224/