【问题标题】:userAgent jQuery script conflictinguserAgent jQuery 脚本冲突
【发布时间】:2012-09-19 13:57:27
【问题描述】:

我有一些 jQuery 可以设置各种 div 的高度和宽度。

jQuery(document).ready(function($) {
    var h = $(window).height();
    var w = $(window).width();
$('.slide') .css({'height': h});
$('.slide') .css({'width': w});
}); 

这一直很好,直到最近我添加了一个脚本来加载 userAgent 特定的 css 文件,一个用于 iPad、Android 和其他所有文件。由于某种原因,这两个脚本不会一起运行。我可以拥有正确大小的 div 或多平台网站。

if(navigator.userAgent.match(/iPad/i)) {
document.write("<link type=\"text\/css\" *etc*>");}

else if(navigator.userAgent.match(/android/i)){
document.write("<link type=\"text\/css\" *etc*>");}

else {
document.write("<link type=\"text\/css\" *etc*>");
}

这最后一点脚本阻止第一个运行的原因是什么?

【问题讨论】:

  • 从哪里调用代码来加载样式表?
  • 我的头标签按顺序是, - 字体等的所有链接 - userAgent 脚本 - 所有其他 js 脚本 - div 高度脚本
  • 我的意思是你在哪里调用第二个代码片段?
  • 对不起,我不完全理解,这有帮助吗? bettondesignwork.co.uk/tim/Boutinot/index.txt

标签: android jquery iphone css jquery-mobile


【解决方案1】:

我的猜测如下。

在 dom 结构完全加载后,但在加载任何外部样式表之前,会立即调用 jQuery.ready() 函数。这意味着在代码加载和应用样式表与修改 css 的代码之间存在潜在的竞争条件。

您可以尝试在jQuery.onload() 中调用此片段。

var h = $(window).height();
var w = $(window).width();
$('.slide') .css({'height': h});
$('.slide') .css({'width': w});

【讨论】:

    猜你喜欢
    • 2014-03-02
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    相关资源
    最近更新 更多