JavaScript的window.onload和jQuery的$(document).ready()方法有什么区别?
我正在寻找一种快速简单的方法来预载JavaScript的图像。 如果这很重要,我正在使用jQuery。 我在这里看到这个( http://nettuts.com … ): function complexLoad(config, fileNames) { for (var x = 0; x < fileNames.length; x++) { $("<img>").attr({ id: fileNames[x], src: config.imgDir + fileNames[x] + config.imgFormat, title: "The " + fileNames[x] + " nebula" }).appendTo("#" + config.imgContainer).css({ display: "none" }); } }; 但是,它看起来有点过分了,我想要的! 我知道那里有jQuery插件,但它们看起来都有点大(大小)。 我只需要一个快速,简单,方便的预加载图像!
我有一个脚本,使用$(document).ready ,但它不使用任何其他的jQuery。 我想通过删除jQuery依赖来减轻它的负担。 如何在不使用jQuery的情况下实现自己的$(document).readyfunction? 我知道使用window.onload将不会是相同的,因为window.onload所有的图像,帧等被加载后触发。
你如何安全地使用JavaScript编码一个URL,以便它可以放入一个GETstring? var myUrl = "http://example.com/index.html?param=1&anotherParam=2"; var myOtherUrl = "http://example.com/index.html?url=" + myUrl; 我假设你需要在第二行上编码myUrlvariables?
我将从代码开始: var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s); 很简单,对吧? 对此,Firebug说: ["hi"] ["bye"] 精彩,但Chrome的JavaScript控制台(7.0.517.41testing版)说: ["bye"] ["bye"] 我做错了什么,或者是Chrome的JavaScript控制台对于评估我的数组非常懒惰?
我想用一个正则expression式来匹配string的一部分,然后访问那个被括起来的子string: var myString = "something format_abc"; // I want "abc" var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString); console.log(arr); // Prints: [" format_abc", "abc"] .. so far so good. console.log(arr[1]); // Prints: undefined (???) console.log(arr[0]); // Prints: format_undefined (!!!) 我究竟做错了什么? 我发现上面的正则expression式代码没有错:我testing的实际string是这样的: "date format_%A" 报告“%A”未定义似乎是一个非常奇怪的行为,但它不是直接关系到这个问题,所以我打开了一个新的, 为什么匹配的子string在JavaScript中返回“undefined”? 。 问题是, console.log的参数就像一个printf语句,由于我logging的string( "%A" )有一个特殊的值,它试图find下一个参数的值。
将JavaScriptembedded到HTML文档中时,放置<script>标记和包含JavaScript的适当位置在哪里? 我似乎还记得,你不应该把它们放在<head>部分,但是放在<body>部分的开头也是不好的,因为在页面完全呈现之前JavaScript将被parsing(或类似的东西)。 这似乎将<body>部分的末尾作为<script>标记的逻辑位置。 那么,在哪里放置<script>标签呢? (这个问题引用了这个问题 ,其中提到JavaScript函数调用应该从<a>标签移动到<script>标签,我特别使用jQuery,但更一般的答案也是适当的。
我正在做的一个项目需要在客户的网页上使用jQuery。 客户将插入我们将要提供的代码块,其中包含一些<script>元素,用于在<script>创build的<iframe>中构build一个小部件。 如果他们还没有使用最新版本的jQuery,那么这个版本也会包含一个用于Google托pipe版本jQuery的<script> 。 问题是有些客户可能已经安装了旧版本的jQuery。 虽然这可能工作,如果它至less是一个相当新的版本,我们的代码确实依赖于jQuery库中最近推出的function,所以肯定会有客户的jQuery版本太旧的情况下。 我们不能要求他们升级到最新版本的jQuery。 有没有什么方法可以加载jQuery的新版本,只在我们的代码的上下文中使用,不会影响或影响客户页面上的任何代码? 理想情况下,也许我们可以检查jQuery的存在,检测版本,如果它太旧,然后加载最新的版本,只是为了我们的代码。 我有一个想法,即将jQuery加载到客户域中的<iframe>中,该域也包含我们的<script> ,这似乎是可行的,但我希望有一个更好的方法来做到这一点(更不用说没有额外的<iframe>的性能和复杂性惩罚)。
将JavaScript中的数组复制到另一个数组时: var arr1 = ['a','b','c']; var arr2 = arr1; arr2.push('d'); //Now, arr1 = ['a','b','c','d'] 我意识到arr2是指与arr1相同的数组,而不是一个新的独立数组。 我怎样才能复制数组来获得两个独立的数组?
我希望能够在上传之前预览文件(图像)。 预览操作应该全部在浏览器中执行,而不使用Ajax来上传图像。 我该怎么做?