Tag: JavaScript

如何检测对HTML5“下载”属性的支持?

在HTML5中实现的新function之一是定位标记的download属性。 这个属性的好处是,它使用户能够下载在客户端应用程序中创build的内容,例如图像(例如从canvas转换而来)。 目前,对这个function的支持很差,所以我想知道如何在浏览器中检测到对这个function的支持。

Javascript通过Id获取元素并设置值

我有一个JavaScript函数,我传递一个参数。 该参数表示我的网页中的元素(隐藏字段)的ID。 我想改变这个元素的值。 function myFunc(variable){ var s= document.getElementById(variable); s.value = 'New value' } 当我这样做时,我得到一个错误,该值无法设置,因为该对象为空。 但是我知道这个对象不是null,因为我在浏览器生成的html代码中看到它。 不pipe怎么说,我试着下面的代码进行debugging function myFunc(variable){ var x = variable; var y = 'This-is-the-real-id' alert(x + ', ' + y) var s= document.getElementById(x); s.value = 'New value' } 当警报消息出现时,两个参数都是相同的,但我仍然得到错误。 但是当我做的时候一切正常 var s= document.getElementById('This-is-the-real-id'); s.value = 'New value' 我该如何解决这个问题 编辑 我为其设置值的元素是隐藏的字段,该ID是dynamic的,当页面加载。 我已经尝试在$(document).ready函数中添加这个,但没有工作

HTML5dynamic创buildcanvas

您好,我有一个关于dynamic创build一个使用JavaScript的canvas的问题。 我创build一个这样的canvas: var canvas = document.createElement('canvas'); canvas.id = "CursorLayer"; canvas.width = 1224; canvas.height = 768; canvas.style.zIndex = 8; canvas.style.position = "absolute"; canvas.style.border = "1px solid"; 但是当我试图find它,我得到一个null值: cursorLayer = document.getElementById("CursorLayer"); 我做错了吗? 有没有更好的方式来创build使用JavaScript的canvas?

在JavaScript中将数字转换为64的最快方法?

在JavaScript中,您可以使用特定的基数将数字转换为string表示forms,如下所示: (12345).toString(36) // "9ix" …并且可以将其转换回像这样的常规数字: parseInt("9ix", 36) // 12345 36是您可以指定的最高基数。 它显然使用字符0-9和az的数字(总计36)。 我的问题:将数字转换为基本64位表示的最快方法是什么(例如,使用AZ ,而-和_是多余的28位数)? 更新 :四个人发布了回复,说这个问题是重复的,或者我正在寻找Base64。 我不是。 “ Base64 ”是一种在简单的ASCII字符集中编码二进制数据的方式,以便通过networking传输等方式保证安全(使纯文本系统不会让二进制文件出现乱码)。 这不是我所问的。 我在询问如何将数字转换为基数为64的string表示forms。 (JavaScript的toString(radix)自动为任何基数达到36;我需要一个自定义函数来获得基数64)。 更新2 :这里有一些input和输出的例子… 0 → "0" 1 → "1" 9 → "9" 10 → "a" 35 → "z" 61 → "Z" 62 → "-" 63 → "_" 64 → "10" 65 → "11" 128 […]

Safari后退button问题

我为当地社区学院做了一些小规模的编程和networking工作。 包括维护一个非常大的和灵魂破坏的网站,包括一个VBScript的大杂烩,javascript,Dreamweaver生成的cruft和各种conmen说服他们购买多年的附加组合。 几天前,我接到一个电话:“网站正在locking使用Safari的人!” 好吧,第一步下载Safari(v3.1.2),第二步网站冲浪。 一切似乎正常工作。 长话短说我终于孤立了这个问题,它涉及到Safari的后退button。 该网站使用花式裤子的JavaScript菜单,在我尝试过的所有浏览器中都能正常使用,包括Safari。 但是在Safari中,如果您closures页面的链接,然后点击后退button,菜单将不再起作用。 我做了一个削减的网页来说明原则。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>Safari Back Button Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body onload="alert('Hello');"> <a href="http://www.codinghorror.com">Coding Horror</a> </body> </html> 加载页面,你会看到警告框。 然后按照页面上的链接并点击后退button。 在IE和Firefox中,你再次看到警告框,在Safari中你不知道。 经过大量的search,我发现了其他类似的问题,但没有真正令人满意的答案。 所以我的问题是,如何让我的网页在用户点击后退button后在Safari中以与在其他浏览器中一样的方式工作? 如果这是一个愚蠢的问题,请温柔,JavaScript对我来说有点新鲜。

Chrome扩展程序:如何在新标签页中打开链接?

在我的Stackoverflow文件夹中,我有stackoverflow.ico和2个波纹pipe文件。 当将其导入到Chrome时,它会在地址栏中显示图标,但是当我点击它时,Chrome不会打开任何新标签页。 我究竟做错了什么? 的manifest.json { "name": "Stackoverflow", "version": "1", "browser_action": { "default_icon": "stackoverflow.ico" }, "background": { "page": "index.html" }, "permissions": ["tabs"], "manifest_version": 2 } 的index.html <html> <head> <script> chrome.browserAction.onClicked.addListener(function(activeTab) { var newURL = "http://stackoverflow.com/"; chrome.tabs.create({ url: newURL }); }); </script> </head> </html>

ember.js和服务器

我在看Ember.js并阅读文档,试图了解如何使用它。 我明白了(非常好),除了一件事。 以我在MVC模式中思考的方式,Model是应用程序中数据的存储库。 我可以看到Ember.js中的客户端数据是如何工作的。 我没有得到的是如何将数据绑定到服务器,以便在客户端更改数据时,更改将在服务器中更新。 反之亦然。 我一直在做我的Web应用程序进行Ajax / JSON调用来回服务器,我只是没有得到如何使用Ember.js。

使用JavaScript新的Array(n)声明

基本的JavaScript问题:因为对Java来说没有硬性的限制(例如IndexOutOfBoundsException ),那么声明中指定length属性的用法是什么? var a = new Array(10); 我知道它预先确定了长度,并将“未定义”放入这些空白点。 这就足够了吗?

什么是您使用的JavaScriptunit testing和嘲笑框架?

我的主要JavaScript框架是jQuery,所以我希望我的unit testing和嘲笑框架兼容。 我宁愿不必引入另一个JavaScript框架。 我目前正在使用QUnit进行unit testing,并且使用Jack进行模拟 ,但对于JavaScript的整个unit testing来说,我还是个新手。 其他人有更好的工具来build议吗? 什么为你工作?

有没有办法来检查两个DOM元素是否相等?

在Javascript中find一个元素的位置和元素的位置是没有问题的。 但是有一般的方法来比较它们吗? 我能想到的唯一方法是比较ID或类名,但不是所有元素都有ID或类名。