使用带有 RequireJS 的条件注释仅加载 IE7/8 jQuery

     2023-02-24     241

关键词:

【中文标题】使用带有 RequireJS 的条件注释仅加载 IE7/8 jQuery【英文标题】:Using conditional comments with RequireJS to load IE7/8 only jQuery 【发布时间】:2012-08-04 12:20:18 【问题描述】:

我在我的项目中使用 Require JS,它正在加载 jQuery 和其他一些与整个站点和所有浏览器相关的 JavaScript 文件。

但是,我需要在 Internet Explorer 7 和 8 上使用一些条件 jQuery,我已经尝试将它放在页面的头部并且脚本似乎无法找到 jQuery,我假设这个是因为它是在 jQuery 之前加载的。

 <script data-main="/@ViewBag.ScriptsFolder/main" src="/scripts/require.js" type="text/javascript"></script>
    <!--[if (gte IE 6)&(lte IE 8)]>
        <script type="text/javascript" src="/Scripts/ie.js"></script>
    <![endif]-->

有没有办法解决这个问题?我也在尝试以这种方式加载 Selectivizr,但由于同样的问题而无法正常工作。

谢谢

【问题讨论】:

【参考方案1】:

您可以在 html 元素上使用条件 IE 特定类,然后检查它并在现有 main 脚本中加载 IE 依赖项。因此,文档的顶部看起来像:

<!--[if lt IE 7]> <html class="ie lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html class="ie lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html class="ie lt-ie9"> <![endif]-->
<!--[if gt IE 8]> <html class="ie"> <![endif]-->
<html> 

然后在main.js 中,您可以使用:

if ($('html.lt-ie9').size()) 
    require(['/Scripts/ie'], function(ieScript) 
        // ... do stuff
    );

您不能使用您描述的方法,因为 require.js 会查找单个 data-main 属性来指定“入口点” - 对 require 的任何后续调用都应在 Javascript 中完成。

【讨论】:

非常感谢!我已经使用了它的一个变体,它工作得很好:-)

带有 RequireJS 的数据表按钮扩展

】带有RequireJS的数据表按钮扩展【英文标题】:DatatablesbuttonextensionwithRequireJS【发布时间】:2016-10-1820:33:58【问题描述】:我在使用requirejs加载数据表库时遇到问题这是我的代码require.config(paths:"jquery":"https://code.jquery.com/jquery-2.2.4... 查看详情

仅带有 POST 的 Spring Boot 和 @CrossOrigin 注释

】仅带有POST的SpringBoot和@CrossOrigin注释【英文标题】:SpringBootand@CrossOriginannotationwithPOSTonly【发布时间】:2016-10-1802:04:12【问题描述】:我有以下课程@RestController@RequestMapping("/bets")@CrossOriginpublicclassBetRestController@Autowiredpriva 查看详情

使用带有 RequireJS 的私有 jquery - 优化后的问题

】使用带有RequireJS的私有jquery-优化后的问题【英文标题】:UsingprivatejquerywithRequireJS-issueafteroptimisation【发布时间】:2013-07-1100:52:17【问题描述】:我正在使用requireJS和jQuery的CDN版本(现在是推荐的方法)组合一个框架,并且在... 查看详情

RequireJS 订单插件和 Dojo 1.7.1

】RequireJS订单插件和Dojo1.7.1【英文标题】:TheRequireJSorderpluginandDojo1.7.1【发布时间】:2012-01-1109:20:25【问题描述】:我正在使用AMD和RequireJS将项目从Dojo1.6.1升级到带有新AMD加载程序的Dojo1.7.1。我必须处理旧的JavaScript文件,而不是... 查看详情

无法使用 RequireJs 加载 Dojo 模块

】无法使用RequireJs加载Dojo模块【英文标题】:CannotloadDojomoduleswithRequireJs【发布时间】:2012-10-1319:11:06【问题描述】:我认为我缺少一些东西。我已经读到您可以使用RequireJS来使用dojo模块,而不是使用Dojo加载器。我对RequireJS和... 查看详情

一个极为简单的requirejs实现

require和sea的源码分析,我之前的博客有写过,今天我想分享的是一个很简单的核心代码(不带注释和空行大概60行),没有容错判断。require.jsrequire函数实现用一句话概括:依次加载require的模块,然后监测script的onload事件,判断... 查看详情

使用包时RequireJS模块加载超时

】使用包时RequireJS模块加载超时【英文标题】:RequireJSmoduleloadtimeoutwhenusingbundles【发布时间】:2015-08-2203:53:09【问题描述】:在没有捆绑包的情况下,要求js可以正常工作。但是每当我使用捆绑包时,我尝试导入的模块都会超时... 查看详情

requirejs

学习requirejs过程中....RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速、优化代码,但其主要目的还是为了代码的模块化。它鼓励在使用脚本时以moduleID替代URL地址。Require... 查看详情

requirejs

原文地址:http://www.requirejs.cn§1.使用§1.1 加载JavaScript文件RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速、优化代码,但其主要目的还是为了代码的模块化。RequireJS... 查看详情

ERROR:TypeError: $(...).selectpicker 不是使用 requirejs 的函数加载库

】ERROR:TypeError:$(...).selectpicker不是使用requirejs的函数加载库【英文标题】:ERROR:TypeError:$(...).selectpickerisnotafunctionloadedlibraryusingrequirejs【发布时间】:2016-06-0717:19:16【问题描述】:ERROR:TypeError:$(...).selectpickerisnotafunction首 查看详情

requirejs基本使用

 在requireJs中,.js的后缀是可以省略不写的 <scriptdata-main="main"src="require.js"></script> 在require.js加载完之后,会查找页面上script标签的data-main属性的值,然后加载,data-main指定的js文件找到名为main的js文件通过requi... 查看详情

在 ES5 中使用带有 TypeScript 和 RequireJs 的 Knockout 类型

】在ES5中使用带有TypeScript和RequireJs的Knockout类型【英文标题】:UsingKnockouttypewithTypeScriptandRequireJsforES5【发布时间】:2019-11-1923:20:55【问题描述】:我正在学习TypeScript,现在正在与淘汰赛类型作斗争。现在我导入依赖项,然后在... 查看详情

一个极为简单的requirejs实现

skyweaver 一个极为简单的requirejs实现require和sea的源码分析,我之前的博客有写过,今天我想分享的是一个很简单的核心代码(不带注释和空行大概60行),没有容错判断。require.jsrequire函数实现用一句话概括:依次加载require的... 查看详情

如何使用 RequireJS 加载前端 NPM/Yarn 包

】如何使用RequireJS加载前端NPM/Yarn包【英文标题】:HowtoloadfrontendNPM/YarnpackageswithRequireJS【发布时间】:2018-01-0901:43:33【问题描述】:我有一个用Knockout编写的前端SPA。由于它的大小,我想将其拆分为多个文件,使我的文件夹结构... 查看详情

WPF 注释加载到 XPS

...dtoXPS【发布时间】:2020-05-1019:25:51【问题描述】:在调查使用带有XML纸张规范(XPS)的AnnotationService类的过程中,我尝试保存和加载创建的注释。使用保存注释-一切都很简单(它是describedonmicrosoft),但有负载-没有任何信息(没有... 查看详情

requirejs简介和一个完整实例

什么是 requireJS?  requireJS是用JavaScript编写的JS框架,主要功能是可以按不同的先后依赖关系对JavaScript等文件的进行加载工作,可简单理解为JS文件的加载器,它非常适合在浏览器中使用,它可以确保所依赖的JS文件加载完... 查看详情

requirejs学习随笔

1、Requirejs是一个压缩完只有14K的javascript模块加载框架2、通过一个个script标签导入js文件已经过时3、Requirejs的好处  a.防止js阻塞页面渲染  b.使用程序调用加载js,防止页面上出现一大串引入js文件的丑陋代码场景4、Requirejs... 查看详情

将 DISTINCT 与多个条件聚合一起使用(注释)

】将DISTINCT与多个条件聚合一起使用(注释)【英文标题】:UsingDISTINCTwithMultipleCondtionalAggregations(Annotate)【发布时间】:2020-04-3010:09:35【问题描述】:Python:2.7版本:Django1.11你好,我在Django查询中使用带有COUNTDISTINCT的条件聚合... 查看详情