手机端使用QQ临时会话的代码
function qqcao(){
var type = undefined;
var param = "";
var sid = 2;
var rawuin = 'qq号码';
var qsig = "undefined";
var QQApi = {
openURL: function(url){
var i = document.createElement('iframe');
i.style.display = 'none';
i.onload = function() { i.parentNode.removeChild(i); };
i.src = url;
document.body.appendChild(i);
var returnValue = QQApi.__RETURN_VALUE;
QQApi.__RETURN_VALUE = undefined;
return returnValue;
},
isAppInstalled: function(scheme) {
var parameters = {'scheme':scheme};
var r = QQApi.openURL('jsbridge://app/isInstalled_?p=' + encodeURIComponent(JSON.stringify(parameters)));
return r ? r.result : null;
},
isQQWebView: function(){
return QQApi.isAppInstalled('mqq') == true;
},
__RETURN_VALUE: undefined
};
var usa=navigator.userAgent;
var p;
var mobile_q_jump = {
android:"https://play.google.com/store/apps/details?id=com.tencent.mobileqq",
ios:"itms-apps://itunes.apple.com/cn/app/qq-2011/id444934666?mt=8",
winphone:"http://www.windowsphone.com/zh-cn/store/app/qq/b45f0a5f-13d8-422b-9be5-c750af531762",
pc:"http://mobile.qq.com/index.html"
};
var isMQ = 0;
if(typeof type == "undefined") type = 1;
if(usa.indexOf("Android")>-1){
p = "android";
}
else if(usa.indexOf("iPhone")>-1 || usa.indexOf("iPad")>-1 || usa.indexOf("iPod")>-1){
p = "ios";
}
else if(usa.indexOf("Windows Phone") > -1 || usa.indexOf("WPDesktop") > -1){
p = "winphone";
}
else {
p = "pc";
}
if(p == "ios"){
//防止循环
if(history.pushState)
history.pushState({},"t","#");
isMQ = QQApi.isQQWebView();
if (!isMQ){
var sc = document.createElement("script");
sc.src = "http://__.qq.com/api/qqapi.js";
sc.onload = function(){
if(window['iOSQQApi']){
isMQ =iOSQQApi.device.isMobileQQ();
}
};
document.body.appendChild(sc);
}
}
else if(p == "pc" && qsig != "undefined"){
window.open(qsig,"_self");
}
if(type == 1){//手Q
var isSuccess = true;
var f = document.createElement("iframe");
f.style.display = "none";
document.body.appendChild(f);
f.onload = function(){
isSuccess = false;
};
if(p == "ios" && sid == 1){
f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
}
if(p == "ios" && sid == 2){//ios并且为群名片
f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
}
else if(p != "pc"){
var url = window.location.href.split("&");
f.src = "mqqopensdkapi://bizAgent/qm/qr?url=" + encodeURIComponent(url[0]);
}
if(p == "android" && sid == 1){
f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
}
if(p == "android" && sid == 2){//ios并且为群名片
f.src = "mqqapi://card/show_pslcard?src_type=internal&version=1&uin="+ rawuin +"&card_type=person&source=qrcode";
}
var now = Date.now();
setTimeout( function(){
if((p == "ios" && !isMQ && Date.now() - now < 2000) || (p == "android" && !isSuccess) || ((p == "winphone" && Date.now() - now < 2000))){
var jumpUrl = mobile_q_jump[p];
if(jumpUrl) window.open(jumpUrl,"_self");
}
} , 1500);
}
}
//pc
tencent://Message/?Uin=QQ号码&websiteName=www.cn-mcn.com&Menu=yes
//带图片 pc
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=QQ号码&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:QQ号码:41" alt="点击这里给我发消息" title="点击这里给我发消息"/></a>
<p><iframe class="video_iframe" style="z-index:1;" src="http://v.qq.com/iframe/player.html?vid=t01662frswa&width=500&height=375&auto=0" allowfullscreen="" frameborder="0" height="375" width="500"></iframe></p>
找到一段腾讯视频,比如地址:
最终效果为:
<p ><iframe class="video_iframe" style="z-index:1;" src="http://v.qq.com/iframe/player.html?vid=d0163kxz8di&width=500&height=375&auto=0" allowfullscreen="" frameborder="0" height="375" width="500"></iframe></p>
下面是腾讯视频嵌入网页的效果:
注意了这个视频放进去我们必须在源码方式下使用了,如我们使用dw编辑器的话必须在源码形式直接放到指定的div,如下所示。
使用node架设服务器的时候,当我们关闭服务窗口,node就会中断,,那么,怎么让服务一直存在呢,node有一个很好的模块可以完成这个工作,forever。
下面记录一些关于forever模块的一些用法:
使用forever运行nodejs应用
何为forever
forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。
官方的说明是说:
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
// 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具
Github地址:https://github.com/nodejitsu/forever
用途
forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程。
比如,你有一个基于express的或者其他的一些个应用那么,它将会很方便你更新和操作你的服务,并且保证你服务能持续运行。
更好的一点就是每次更改文件,它都可以帮你自动重启服务而不需要手动重启。
安装forever
// 记得加-g,forever要求安装到全局环境下
sudo npm install forever -g
forever使用说明
启动相关
// 1. 简单的启动
forever start app.js
// 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
forever start -l forever.log app.js
// 3. 指定app.js中的日志信息和错误日志输出文件,
// -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log app.js
// 4. 追加日志,forever默认是不能覆盖上次的启动日志,
// 所以如果第二次启动不加-a,则会不让运行
forever start -l forever.log -a app.js
// 5. 监听当前文件夹下的所有文件改动
forever start -w app.js
文件改动监听并自动重启
// 1. 监听当前文件夹下的所有文件改动(不太建议这样)
forever start -w app.js
显示所有运行的服务
forever list
停止操作
// 1. 停止所有运行的node App
forever stopall
// 2. 停止其中一个node App
forever stop app.js
// 当然还可以这样
// forever list 找到对应的id,然后:
forever stop [id]
重启操作
重启操作跟停止操作保持一致。
// 1. 启动所有
forever restartall
更多一些
上面的一些解释足够平常使用,还有待之后继续补充。
开发和线上建议配置
// 开发环境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
// 线上环境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
上面加上NODE_ENV为了让app.js辨认当前是什么环境用的。不加它可能就不知道哦?
一些注意点
有可能你需要使用unix下的crontab(定时任务)
这个时候需要注意配置好环境变量。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
初拟这个题目的时候,感觉太过简单,没有什么值得讲的。会一点HTML语言的人应该都知道相对路径和绝对路径的区别。不过后来想了想,觉得还是有必要写出来的。因为,毕竟还是有部分HTML的初学者和一些特定的环境下,会因为文件路径设置不当导致网站内容加载不全。比如说,当我们在本地写好了一个网站后,当把这个网站搬到其他地方上线后发现有些图片,模块加载不出来。几经检查代码逻辑性,都没有发现问题,但最后经过旁人的小小的指点,哦,原来是代码中文件的路径设置成了本地的了,而非新环境下的路径。
通常情况下,建议大家在引用文件路径的时候优先使用相对路径,这样就不会因为使用绝对路径,在每次网站搬迁的时候修改代码。使用相对路径可以带来很多便利。
好了,我们接下来就讲讲HTML的相对路径和绝对路径。
相对路径(Relative Path)
同目录
引用同目录下的文件,可直接引用文件名,而不需指明路径。
比如,
文件index.html的路径是: D:\hostingspace\aipsme\wwwroot\test\index.html.
文件test.html的路径是:D:\hostingspace\aipsme\wwwroot\test\test.html.
现在要在文件index.html中引用文件test.html,则只需要这样写:
<a href = “test.html”> test.html</a>
不同目录
情况一
文件list.html的路径是: D:\hostingspace\aipsme\wwwroot\abc\list.html.
文件buter.html的路径是:D:\hostingspace\aipsme\wwwroot\def\buter.html.
现在要在文件list.html中引用文件buter.html,则只需要这样写:
<a href = “../def/buter.html”> buter.html</a>
情况二
文件list.html的路径是: D:\hostingspace\aipsme\wwwroot\abc\list.html.
文件buter.html的路径是:D:\hostingspace\aipsme\wwwroot\buter.html.
现在要在文件list.html中引用文件buter.html,则只需要这样写:
<a href = “../buter.html”> buter.html</a>
情况三
文件list.html的路径是: D:\hostingspace\aipsme\wwwroot\abc\def\list.html.
文件buter.html的路径是:D:\hostingspace\aipsme\wwwroot\buter.html.
现在要在文件list.html中引用文件buter.html,则只需要这样写:
<a href = “../../buter.html”> buter.html</a>
情况四
文件list.html的路径是: D:\hostingspace\aipsme\wwwroot\abc\list.html.
文件buter.html的路径是:D:\hostingspace\aipsme\wwwroot\abc\def\buter.html.
现在要在文件list.html中引用文件buter.html,则只需要这样写:
<a href = “def/buter.html”> buter.html</a>
绝对路径(Absolute Path)
比方现在有一个网站www.test.com放在一个虚拟主机商的服务器上。您的网站文件通常是放在根目录wwwroot或者public_html下面,这样的话,比如你现在有一个文件index.php的路径是wwwroot\test\index.php
那么这个文件的绝对路径应该是:http://www.test.com/test/index.php
相关文章
- 支付宝支付在国内算是大家了,我们到处都可以使用支付宝了,下文整理介绍的是在安卓app应用中使用支付宝进行支付的开发例子。 之前讲了一篇博客关与支付宝集成获取...2016-09-20
- PHP+Ajax有许多的功能都会用到它小编今天就有使用PHP+Ajax实现的一个微信登录功能了,下面我们来看一个PHP+Ajax手机发红包的程序例子,具体如下所示。 PHP发红包基本...2016-11-25
- 有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
- ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。  ...2017-07-06
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- 华为手机怎么恢复已卸载的应用?有时候我们在使用华为手机的时候,想知道卸载的应用怎么恢复,这篇文章主要介绍了华为手机恢复应用教程,需要的朋友可以参考下...2020-06-29
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 很多用安卓智能手机的朋友是用九宫格锁屏,网上也有暴力删除手机图形锁的方法,不过我们可以用程序来破解。本文只提供技术学习,不能干坏事 安卓手机的图形锁(九宫格)...2016-09-20
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- 华为手机怎么开启双时钟?华为手机是可以设置双时钟的,如果来回在两个有时差的地方工作,是可以设置双时钟显示,下面我们就来看看华为添加双时钟的技巧,需要的朋友可以参考下...2020-12-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- 许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21使用insertAfter()方法在现有元素后添加一个新元素
复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
使用percona-toolkit操作MySQL的实用命令小结
1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07