我试图理解样式标签与innerHTML一起使用时的行为.
我做了3个实验:
使用现有规则的样式,innerHTML会插入其他选择器规则
结果:两条规则都适用.演示:http://jsfiddle.net/Tcy3B/
使用现有规则的样式,innerHTML插入相同的选择器规则
结果:忽略新规则.演示:http://jsfiddle.net/Tcy3B/1/
空样式,innerHTML插入规则,然后另一个innerHTML插入另一个规则
结果:第二条规则覆盖第一条规则.演示:http://jsfiddle.net/Tcy3B/2/
任何人都可以解释这个逻辑吗?这对我来说完全是随机的,有时第二条规则被添加到第一条规则中,有时会被忽略,有时它会覆盖第一条规则.
背景:我们的想法是构建依赖于css而不是JavaScript的动态UI,如此全文搜索示例所示.
举个例子,这是第二个演示的代码:
HTML:
<style type="text/css">
.red {color:red;}
</style>
<div class="red">red</div>
<div class="blue">blue</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var st=document.getElementsByTagName("style")[0];
st.innerHTML=".red {color:blue;}";
Run Code Online (Sandbox Code Playgroud) 在我的脚本中,我需要检索字典以将编码值转换为名称:
$.ajax({
// retrieve dictionary
})
.done(function(dictionary){
// convert encoded values into names
})
.done(function(){
// run my application
});
Run Code Online (Sandbox Code Playgroud)
但是,有时字典已经被另一个应用程序加载,在这种情况下我不需要ajax调用:
if (dictionary) {
// convert encoded values into names
// run my application
}
else {
$.ajax({
// retrieve dictionary
})
.done(function(dictionary){
// convert encoded values into names
})
.done(function(){
// run my application
});
}
Run Code Online (Sandbox Code Playgroud)
这个if/else语句相当重,是否有办法缩短它:
// load dictionary if needed
// then run my application
Run Code Online (Sandbox Code Playgroud)
注意:我使用$ sign作为我的伪代码,但我不一定与jQuery绑定.
我正在使用SharePoint 2010 REST API,它可以以xml或JSON格式返回数据.对于我的场景,我需要JSON.
使用jQuery一切正常:
$.ajax({
type:"GET",
url:url,
dataType:"json",
success: function(data, textStatus, jqXHR){...}
});
Run Code Online (Sandbox Code Playgroud)
但我无法在纯JavaScript中获取JSON,数据以xml形式返回.我错过了什么?
var XHR=new XMLHttpRequest();
XHR.open("GET", url, true);
XHR.setRequestHeader("Content-Type","application/json");
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {...}};
XHR.send(null);
Run Code Online (Sandbox Code Playgroud) 是否有一个JavaScript库,允许将字符串保存为txt文件,并跨浏览器工作?
在过去,我一直在使用Downloadify,但我正在寻找另一个选项,原因有两个:
CORS和跨域消息传递对我来说看起来是一样的:它们允许跨域通信.
是否有任何理由使用一个与另一个?
这项技术的名称是否包含浏览浏览器中打开的页面以查找特定内容并进行修改?
一些例子:
我知道这是一种渐进的增强.但我对第一步,内容发现过程特别感兴趣.我会对提供最佳实践的文章感兴趣,或者解释这种技术的缺点.
编辑:我添加了一个示例来说明这种技术不仅适用于文本节点,还适用于任何类型的html内容.
我正在开发一个动态报表,由于数据更改或分析需求,需要根据需要重新创建图表.
我对目前市场上可用的JavaScript图表工具的速度比较感兴趣.
我正在处理几千个数据点,我需要对各个维度(日期,市场,类型,客户)进行切片和切块.
我创建了一个JavaScript应用程序,它有很多数组操作(排序,过滤等).
目前我的功能是这样的:
function (myArray, arg1, arg2,...)
Run Code Online (Sandbox Code Playgroud)
其中myArray是我正在处理的数组,而arg1,arg2,...是函数用来修改数组的参数.
我认为在对象和参数之间进行明确的分离会更简洁(la jQuery):
myArray.function(arg1, arg2,...)
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用Array.prototype将我的函数添加到所有数组,但是这看起来太重了,因为我添加的函数非常特定于我的情况,并且通常对数组没有意义.我也知道我可以创建一个对象,但是我不会受益于JavaScript中可用的数组方法(indexOf,filter等).
有没有办法可以创建自己的数组对象,继承默认数组方法并允许我添加自己的数组对象?
我想为我的用户提供一个编辑JSON对象的界面.
例如,我有一个使用以下选项调用Google图表的JavaScript:
var options={
chartType: "Pie",
title:"Chart title",
is3D:false,
width:500,
height:300,
};
Run Code Online (Sandbox Code Playgroud)
理想情况下,我的用户应该能够自己修改选项而无需查看代码.它们将显示从对象自动构建的UI,其中:
这有图书馆吗?如果没有,任何建议开始?
我当然可以手动构建表单,但我们的想法是拥有适用于任何对象的通用解决方案.
可能重复:
HTML5 <script>声明
我听说有些人说你不需要type="text/javascript"
在<script>
标签中指定一个,因为这是默认类型.
如果我打开我的脚本标签<script>
而不是更详细的话,是否有任何缺点<script type="text/javascript">
?
javascript ×8
ajax ×2
json ×2
arrays ×1
browser ×1
canvas ×1
charts ×1
cors ×1
cross-domain ×1
css ×1
data-uri ×1
execcommand ×1
html ×1
innerhtml ×1
object ×1
performance ×1
postmessage ×1
promise ×1
save-as ×1
styles ×1
svg ×1