正则表达式-获取JavaScript中$表达式

源文本

a.click(jQuery('#slide06 > .btn.btn2')[0]);
a = jQuery("li[style^='opacity: 1;']").find('.fl.pic1 > a > img, .fr.pic2 > a');
console.log(2);
a = jQuery('.fl.lt > a > img, .fl.rt > a > img');
a = jQuery('.pics > li > a > img');
console.log(5);
a = jQuery('.pics > li > a > img')[0];
console.log(8);
a = $(".pics > li > a > img")[0];
console.log('success');

正则表达式

(\()*(jQuery|\$)\(.*

结果

(jQuery('#slide06 > .btn.btn2')[0]);
jQuery("li[style^='opacity: 1;']").find('.fl.pic1 > a > img, .fr.pic2 > a');
jQuery('.fl.lt > a > img, .fl.rt > a > img');
jQuery('.pics > li > a > img');
jQuery('.pics > li > a > img')[0];
$(".pics > li > a > img")[0];

检查iframe被嵌套的三种方式

采用window对象方式

if (window.top != window.self) {
	alert("window对象-被嵌套一层或多层");	
}
if (window.top != window.parent) {
	alert("window对象-被嵌套两层");
}

采用self对象方式

if (self.top != self.self) {
	alert("self对象-被嵌套一层或多层");
}
if (self.top != self.parent) {
	alert("self对象-被嵌套两层");
}

采用逻辑表达式之短路计算方式

(t = window.top) && t == window.self || alert("短路计算-被嵌套一层或多层");
(t = window.top) && t == window.parent || alert("短路计算-被嵌套两层");

逻辑表达式说明

jsonp学习汇总

为什么要使用jsonp?
为了解决在不同域名下,即跨域(参考JavaScript同源策略)获取数据的问题。

这是同域请求

<script src='//libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
<script type="text/javascript">
    $.ajax({
        url: 'http://127.0.0.1/a.json',
        dataType: "json",
        success: function (data) {
            console.log(data);
        }
    });
</script>

a.json

{
    "name": "sun",
    "age": 10
}

2015-07-11_143704

如果换成跨域?

<script src='//libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
<script type="text/javascript">
    $.ajax({
        url: 'http://www.sun.cn/a.json',
        dataType: "json",
        success: function (data) {
            console.log(data);
        }
    });
</script>

2015-07-11_144552
提示跨域了,现在就需要jsonp出马。
Continue reading

匿名立即调用函数学习

错误例子:
因为在解析器解析全局的function或者function内部function关键字的时候,默认是认为function声明,而不是function表达式,如果你不显示告诉编译器,它默认会声明成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。

function() {// FF报错信息:SyntaxError: function statement requires a name
    alert("第18行");
}();

Continue reading

JavaScript获取鼠标选择的文本内容

这里需要用到两个属性selectionStart与selectionEnd,且IE、Chrome、FF都支持此属性。

<textarea id="codeText" rows="10" cols="40"></textarea>
<button id="search">查找</button>
$('#search').click(function(){
	var codeText = $("#codeText")[0];
	codeText = codeText.value.slice(codeText.selectionStart,codeText.selectionEnd);
	alert(codeText);
});