当前位置:  编程技术>WEB前端
本页文章导读:
    ▪javascript 跨域实现,实现双向通信,提供第3方调用      前言:专门从事js工作其实也有1年时间了,水平一般。获取前端相关的知识,主要通过 司徒正美的博客 和 司徒正美的QQ群-javascript罗浮宫。在去年的项目中,做消息推送的时候,由于推送.........
    ▪深入浅出JQuery (三) 图片预览效果             1.在每次学习相同的内容时都会有不同的理解,就好像我们每次从同一个地方走过的感觉的不同的一样,JQuery只是JavaScript框架中的一种,在层层众生当中脱颖而出,我.........
    ▪mac下安装git和nodejs       第一种方法: 1、执行以下命令安装homebrew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 2、执行以下命令安装git brew install git 3、执行以下命令安装nodejs brew install node 第二种方法.........

[1]javascript 跨域实现,实现双向通信,提供第3方调用
    来源:    发布时间: 2013-11-06

前言:

专门从事js工作其实也有1年时间了,水平一般。获取前端相关的知识,主要通过 司徒正美的博客 和 司徒正美的QQ群-javascript罗浮宫。

在去年的项目中,做消息推送的时候,由于推送服务部署在一个独立的服务上,后来试了一些方案,

最后是通过window.name和postMessage结合的方式解决跨域问题,从而实现消息推送(AJAX 的长轮询).

最近项目比较空,特地花了时间整理了下代码。当然跨域的实现,还是首推JSONP的方式

作用:

我们作为客户端,开放相关API给其他第3方进行访问

(如果该js真的能解决你的需求,希望能支持下,让更多人得到方便)。

原理:

相关原理可以参考 http://js8.in/752.html,对于通过name的方式,本js加入了代理页(about:blank),不会污染主端window.name,结构下图

功能:

1.实现main.html和client.html之间的双向通信,通过提供相关Command。

2.通过callback机制,可以方便的对返回的数据进行相应的处理。

3.多参数支持,参数支持字符串,数字,通过加载JSON的js,支持object,数组

例子:

  https://github.com/legu2009/cross-domain-javascript

  github上有相关例子的环境,可以安装nodejs,进行调试。(去掉注释,可支持json格式)

     main.html

1 <body>
2 </body>
3 <!--script type="text/javascript" src="http://localhost:9099/json2.js"></script-->
4 <script type="text/javascript" src="http://localhost:9099/crossDomain-IE-about-blank.js"></script>
5 <script>
6 (function () {
7 var host = window.location.host;
8 var slice = Array.prototype.slice;
9 typeof console == "undefined" && (console = {
10 log: function (str) {
11 alert(str);
12 }
13 });
14 var config = {
15 clientUrl: "http://localhost:9098/client.html"
16 };
17 var crossDomain = getCrossDomain(config);
18 /*
19 crossDomain.message.set({
20 params2str: function () {
21 return JSON.stringify(slice.call(arguments, 0));
22 },
23 str2params: function (str) {
24 return JSON.parse(str);
25 }
26 });*/
27 if (crossDomain.isMain()) {//调用命令方,主端
28 function callback () {
29 console.log(host+':'+slice.call(arguments, 0).join(','));
30 }
31 crossDomain.mainCommand.add(
    
[2]深入浅出JQuery (三) 图片预览效果
    来源: 互联网  发布时间: 2013-11-06

       1.在每次学习相同的内容时都会有不同的理解,就好像我们每次从同一个地方走过的感觉的不同的一样,JQuery只是JavaScript框架中的一种,在层层众生当中脱颖而出,我们来看一下使用JQuery框架的趋势图。

       2.从图中我们可以看出,使用JQuery的人越来越多,这是由于它轻松级而且功能强大的原因。

对于一种框架不仅仅要学会使用,还要学会如何写框架,可以做出框架的人要比只是使用框架的人更牛B,所以,我们要学着写框架。

       3. 同样,技术也离不开生活,当你用一种思维方式去解决问题时,一般是生活中解决问题的过程,学会把技术融入到生活中去,技术和生活相结合,可能会更好的应用技术,可以说生活思想的创新是优于技术的,举个例子来说:AJAX不知道的人就会觉的这是产生的一种新技术,其实,不是这样,它只是一种新的思想,新的方式,如果没有人提出来这样的想法,那怎么会差生这种技术的普及和应用呢,学会生活。

       4. 下面实现了一个气泡提示功能,并不是某个元素标签的“Title”属性,元素自带提示反应很慢,不能适应每一种情况,提示会跟随鼠标移动而变化,再稍微改一改就会变成,很多购物网站上那种,鼠标移动到图片上自动放大的效果。

         先看一下效果图

 

          实现代码

         CSS代码(表现)

/* CSS Document */
/*设置提示DIV的样式*/
#tooltip{
	/*绝对定位*/
	position:absolute;
	border:1px solid balck;
	background:#333;
	color:#fff;
}
p{
	/*无项目符号*/
	list-style:none;
	float:left;
	display:inline;
	border:1px solid #AAAAAA;
}

 

         JQuery代码(行为)

// JavaScript Document
$(function(){
	//保存鼠标位置坐标
	var x=10;
	var y=20;
	//注册图片的鼠标移动事件
	$('a.tooltip').mouseover(function(e){
		//把图片的title属性值保存起来
		this.myTitle=this.title;
		this.title=""
		//放大后图片上的提示信息
		var imgTitle=this.myTitle ? "<br/>"+this.myTitle:"";
		//创建一个现实大图片的DIV
		var tooltip = "<div id='tooltip'><img src='/blog_article/"  this.href  "'alt='品牌预览'/>"+imgTitle+"</div>";
		//将创建的DIV添加到窗体中去
		$('body').append(tooltip);
		//设置显示出来的图片的位置
		$('#tooltip')
			.css({
				 "top":(e.pageY+y)+"px",
				 "left":(e.pageX+x)+"px"})
			.show('fast');
		//鼠标移出事件
	}).mouseout(function(){
		//设回title值
		this.title=this.myTitle;
		$('#tooltip').remove();
		}).mousemove(function(e){
			$('#tooltip')
			.css({
				 "top":(e.pageY+y)+"px",
				 "left":(e.pageX+x)+"px"});
;	
		});  
});

 

         HTML代码(结构)

<body>
	<p>
		<a  href=/blog_article/"images/apple_1_bigger.jpg class="tooltip" title="苹果 iPod">
			<img src=/blog_article/"images/apple_1.jpg  alt="苹果 iPod"" />
		</a>
	</p>
	<p>
		<a href=/blog_article/"images/apple_2_bigger.jpg class="tooltip" title="苹果 iPod nano">
			<img src=/blog_article/"images/apple_2.jpg alt="苹果 iPod nano""/>
		</a>
	</p>
	<p>
		<a href=/blog_article/"images/apple_3_bigger.jpg class="tooltip" title="苹果 iphone">
			<img src=/blog_article/"images/apple_1.jpg alt="苹果 iphone"
		</a>
	</p>
	<p>
		<a href=/blog_article/"images/apple_4_bigger.jpg class="tooltip" title="苹果 Mac">
			<img src=/blog_article/"images/apple_4.jpg alt="苹果 Mac" />
		</a>
	</p>
</body>


          PS:1.在想得到元素pageX,pageY坐标时,要先把元素的position设置absolute或relate,否则元素不会移动。

                  2.html()、text()、val()关系

                       我觉的应该一般是html()>text()>val()这样的关系,它们都可以既获取值又可以设置值,html()读取设置元素整体值,text()为元素文本值,val()为元素value属性值。

                  3.this指的是当前操作的DOM对象,它不能使用JQueryfangfa ,$(this)即把this由DOM转为JQuery。

 

            一个美观的用户交互界面,一般是由表现、结构、行为这三部分组成,CSS给一个固定、死板的结构化的HTML设计了美丽的外表,而JavaScript又给他们锦上添花,增加了动态效果,从而形成了动态页面。

            一个网站往往是由很多个相互联系的动态页面以及数据库服务器组成,Web程序中与用户直接交互的只是Web前台即页面。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

作者:lilongsheng1125 发表于2013-3-4 16:00:51 原文链接
阅读:12 评论:0 查看评论

    
[3]mac下安装git和nodejs
    来源: 互联网  发布时间: 2013-11-06
第一种方法:
1、执行以下命令安装homebrew
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
2、执行以下命令安装git
brew install git
3、执行以下命令安装nodejs
brew install node

第二种方法:
1、先安装git
git安装包下载地址http://code.google.com/p/git-osx-installer/downloads/list
2、安装nodejs
依次执行以下命令:
git clone https://github.com/joyent/node.git nodejs
cd nodejs
./configure
make
sudo make install

作者:zhengyinhui100 发表于2013-3-4 16:25:35 原文链接
阅读:43 评论:0 查看评论

    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3