HTML5解决跨域需求

2013-01-05 10:56:56

需要在一个站点内获得frame另一个站点内部鼠标事件(前提两个站点都有更改权限)。 说白了就是a站内嵌b站,在a站点击b站触发鼠标事件。
解决思路:既然window.frames["iframe1"].document.getElementsByName("eventBack")这种方式不给力,那么就换一个思路。 比如这个鼠标事件如果放到b站,当b验证是来自a站的请求,就添加一个鼠标事件,其余的不会有任何改变就ok了。这样也就能满足这个另类的需求了。开工!
HTML5提供了跨文档消息机制(Cross Document Messaging),它提供了跨越frame、tabs或windows通信的能力。这一点灰常重要,也就是因为这个,才能把上述过程实现。
目的:http://orz-i.com/ky站点内嵌http://f2e.it/ky 当点击http://orz-i.com/ky内文字时,触发frame内鼠标事件,在http://f2e.it/ky内鼠标事件不触发。
http://orz-i.com/ky/index.html 代码:
<iframe id="ifr" src="http://f2e.it/ky/index.html" height="240" width="320"></iframe>
<script type="text/javascript"> 
window.onload = function() { var ifr = document.getElementById('ifr');//获取框架
var targetOrigin = 'http://f2e.it'; //目标源
ifr.contentWindow.postMessage('I was there!', targetOrigin); };
 
</script>
http://f2e.it/ky/index.html 代码:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script><script type="text/javascript">
window.addEventListener('message', function(event){ // 通过origin属性判断消息来源地址 
if (event.origin == 'http://orz-i.com')

{ alert(event.data); // 弹出"I was there!"
alert(event.source);// 对f2e.it、index.html中window对象的引用 // 但由于同源策略,这里event.source不可以访问window对象
$(function(){$("#ck").click( function() {alert("跨域弹窗!");});}); } }, false);
</script>
<div id="ck">点击我测试跨域弹窗</div>

小试nodejs

2012-12-27 14:30:28

index.js
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
server.js
var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest(request, response) {
var postData = "";
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
request.setEncoding("utf8");
request.addListener("data", function(postDataChunk) {
postData += postDataChunk;
console.log("Received POST data chunk '"+
postDataChunk + "'.");
});
request.addListener("end", function() {
route(handle, pathname, response, postData);
});
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
router.js
function route(handle, pathname, response, postData) {
console.log("About to route a request for " + pathname);
if (typeof handle[pathname] === 'function') {
handle[pathname](response, postData);
} else {
console.log("No request handler found for " + pathname);
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not found");
response.end();
}
}
exports.route = route;
requestHandlers.js
var querystring = require("querystring");
function start(response, postData) {
console.log("Request handler 'start' was called.");
response.writeHead(200, {"Content-Type": "text/html"});
response.write(body);
response.end();
}
function upload(response, postData) {
console.log("Request handler 'upload' was called.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("You've sent the text: "+
querystring.parse(postData).text);
response.end();
}

exports.start = start; exports.upload = upload;
测试先node index.js 访问端口127.0.0.1:8888

全站二维码

2012-12-24 23:17:59

本来回来挺累了,看node看了一半,发现放到收藏夹里了,然后突发奇想,为毛不给全站弄个二维码多好,拍一下然后开wifi躺着看,省的记那么长一串url。干脆写个根据url生成二维码的Js吧,吼吼,于是找了些资料写了个二维码生成js

<div id="qr"> </div> <script type="text/javascript" src="http://f2e.it/jq.js"></script> <script type="text/javascript"> $(document).ready(function(){ var url = window.location.href; //获取当前页面链接 //var url = "http://orz-i.com" $("#qr").html(""); $("#qr").html("<img src='http://chart.apis.google.com/chart?cht=qr&&chs=150x150&chl="+url+"'/>"); }); </script>

一会搞到全站去,哈哈

利用github建立blog

2012-12-19 14:29:39

工具:域名一个,github账户一个
登陆git
skua.github.com
创建形式如xxx.github.com的仓库
上传index.html文件
创建名为CNAME的文件,用文本编辑器打开,添加你要解析的域名,如f2e.it,保存push到git仓库里
f2e.it
 
f2e.it
 
然后解析域名的DNS至 204.232.175.78
f2e.it
接着就是等待
关于自动生成html的东东感兴趣的同学去这里找http://pages.github.com/
终于可以把闲置的域名挂起来了guanqun.me
 

关于src/mongo/shell/mongo.js:91问题

2012-11-15 20:24:59

manna@ubuntu:/var/lib/mongodb$ mongo MongoDB shell version: 2.2.1 connecting to: test Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91 exception: connect failed
查找log发现 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
发现没有journal文件夹
sudo mkdir journal
mongod
再开一终端 mongo
ok
另发现nginx下页面问题,原来是文件夹权限问题
给他前
-rw-r--r-- 1 root root  537  9月 25 23:03 50x.html drwxr-xr-x 5 root root 4096 11月 13 21:00 git -rw-r--r-- 1 root root  612  9月 25 23:03 index.html -rwxrwxrwx 1 root root   24 11月  3 20:37 index.php drwxr-xr-x 2 root root 4096 11月 13 21:48 local -rw-r--r-- 1 root root   20 11月  2 21:27 php.html -rw-r--r-- 1 root root    0 11月  3 21:30 php.ini -rw-r--r-- 1 root root   20 11月  2 21:28 php.php -rw-r--r-- 1 root root  281 11月  6 13:06 skua.php
然后
sudo chmod a+rwx html/ -R
全给他
-rwxrwxrwx 1 root root  537  9月 25 23:03 50x.html drwxrwxrwx 5 root root 4096 11月 13 21:00 git -rwxrwxrwx 1 root root  612  9月 25 23:03 index.html -rwxrwxrwx 1 root root   24 11月  3 20:37 index.php drwxrwxrwx 2 root root 4096 11月 13 21:48 local -rwxrwxrwx 1 root root   20 11月  2 21:27 php.html -rwxrwxrwx 1 root root    0 11月  3 21:30 php.ini -rwxrwxrwx 1 root root   20 11月  2 21:28 php.php -rwxrwxrwx 1 root root  281 11月  6 13:06 skua.php 过

php.ini中添加extension=mongo.so无效

2012-11-04 12:19:33

/etc/php5/fpm/下修改phpini添加extension=mongo.so无效
版本
PHP Version 5.3.5-1ubuntu7.11
SystemLinux ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686
原因在于扩展ini已经全部放置与conf.d里
打开conf.d发现
manna@ubuntu:/etc/php5/fpm/conf.d$ ls curl.ini     imap.ini    pdo_mysql.ini   snmp.ini     xmlrpc.ini gd.ini       mcrypt.ini    mysqli.ini  pdo_sqlite.ini  sqlite3.ini  xsl.ini idn.ini      memcache.ini  mysql.ini   pspell.ini      sqlite.ini imagick.ini  ming.ini      pdo.ini     recode.ini      tidy.ini
于是创建mongo.ini
sudo vim mongo.ini
添加extension=mongo.so
保存刷新phpinfo

 

phpinfo空白

2012-11-04 10:48:06

主要症状:nginx下phpinfo()空白以及所有php文件空白,但是html页面可正常访问
vim打开/etc/nginx/conf.d下default.conf sudo vim default.conf
更改:
location ~ \.php$ { root          html; fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; fastcgi_param  SCRIPT_FILENAME /scripts$fastcgi_script_name; include        fastcgi_params; }
 
改为:
server { listen 80; server_name localhost;
#charset koi8-r; #access_log /var/log/nginx/log/host.access.log main;
location / { root /usr/share/nginx/html; index index.html index.htm index.php; }
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; }
观察发现其实将每个location 后的root以及fastcgi_param SCRIPT_FILENAME后面的目录更改成同一位置即可,参考页面

LNMP配置暂存

2012-11-02 18:34:49

sudo apt-get install nginx
sudo apt-key adv --keyserver.ubuntu.com --recv 7F0CEB10
sudo apt-get install vim
sudo vim /etc/apt/sources.list
sudo apt-get update
sudo apt-get install mongodb-10gen
sudo mkdir -p /data/db/
sudo chown 'skua' /data/db
mongo
sudo apt-get install mysql-server
add follows into /ect/mysql/my.cnf
sudo apt-get install memcached
sudo apt-get install php5-fpm php5-cli php-pear
sudo apt-get install rabbitmq-server
sudo apt-get install openjdk-6-jdk
#sudo rm /var/lib/dpkg/lock
add follows into /etc/mysql/my.cnf
sudo vim /etc/mysql/my.cnf
sudo pecl channel-update pecl.php.net
sudo pecl install pecl_http
sudo pecl install mongo
sudo pecl install memcached
sudo pear upgrade pear
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover components.ez.no
sudo pear channel-discover pear.symfony-project.com
sudo pear install --alldeps phpunit/PHPUnit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sudo nginx
netstat -ltn
sudo mongod
netstat -ltn
php-fpm
php5-fpm
sudo apt-get install mercurial
mysql
mysqladmin
mysqladmin -u root -p password 'password'
sudo gedit /etc/nginx/sites-enabled/default
sudo killall nginx
sudo nginx
sudo gedit /etc/nginx/sites-enabled/default
cd /etc/php5/
ls
cd fpm
sudo gedit php.ini
sudo killall nginx
sudo nginx
locate php-fpm
netra
netate
mongod
netstat -ltn
locate php-fpm
sudo apt-get install git
mongo
sudo killall php
~loacte fpm
~sudo php5-fpm
sudo apt-get install php5-cgi php-apc php5-curl php5-gd php5-mysql
php5-mcrypt php5-memcache php5-memcached
locate fpm
sudo php5-fpm
sudo killall nginx
sudo nginx
sudo apt-get install php5-dev
sudo apt-get install php5-fpm
locate php5
cd /var/cache/apt/
cd archives/
dpkg -L php5-fpm
/usr/sbin/php5-fpm
sudo killall php5-fpm
sudo php5-fpm
netstat -tln
/usr/sbin/php5-fpm
sudo /etc/init.d/php5-fpm
netstat -ltn
cd /etc/php5/cli/
sudo gedit php.ini
locate php5
cd /var/cache/apt/
cd archives/
dpkg -L php5-fpm
nginx r
sudo killall nginx
sudo nginx
mongo
sudo apt-get install memcached
sudo apt-get install php5-sqlite
netstat -ltn
sudo /etc/init.d/php5-fpm restart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sudo apt-get install build-essential subversion python-imaging python-
flup python-dev memcached libmemcache-dev
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sources:
## newer versions of some applications which may provide useful rc http://mirrors.163.com/ubuntu/ lucid main universe restricted multiverse deb http://mirrors.163.com/ubuntu/ natty main universe restricted multiverse deb-src http://mirrors.163.com/ubuntu/ natty main universe restricted multiverse deb http://mirrors.163.com/ubuntu/ natty-security universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ natty-security universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ natty-updates universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ natty-proposed universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ natty-proposed universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ natty-backports universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ natty-backports universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ natty-updates universe main multiverse restricted deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

linux+Nginx+MongoDB+PHP

2012-10-14 20:14:39

Linux:
1.报错:unable to find a medium containing a live file system
解决:将镜像内文件复制到移动硬盘安装。
Nginx:
1.用sudo(因为只读文件)打开/etc/apt/sources.list文件添加(Esc从编辑切换到命令,o从命令切换到编辑,并在下方建立新行,:wq退出并保存)
deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx

然后
sudo -s
nginx=stable # use nginx=development for latest development version
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install nginx
如果报错缺少密钥啥的就
sudo -s
nginx=stable # use nginx=development for latest development version
echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-$nginx-lucid.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
apt-get update 
apt-get install nginx
MongoDB:(安装姿势不对,果断换姿势,MongoDB,如继续阅读则仅供作编译过程参考)
 
aptitude install -y git-core build-essential scons aptitude install -y libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev
git clone git://github.com/mongodb/mongo.git cd mongo # pick a stable version unless doing true dev git tag -l # Switch to a stable branch (unless doing development) -- # an even second number indicates "stable". For example: git checkout r2.0.4 然后编译,我这报错 can't find boost headers google发现是一个c++编译器,废话木有编译器编译个毛毛 官方文档http://www.boost.org/doc/libs/1_51_0/more/getting_started/unix-variants.html wget http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.tar.gz $ ./bootstrap.sh --prefix=/usr/local
$ ./b2 install
一直在编译可以吃饭去了
回来各种报错
patchlevel.h:没有那个文件或目录
于是:sudo apt-get install python-dev
然后又bzlib.h:没有那个文件或目录
于是:sudo apt-get install libbz2-dev
嗯嗯$ ./b2 install
继续吃
然后回到mongo目录(编译太久了都忘了要干啥了)
scons all 果断继续报错 In file included from /usr/local/include/boost/filesystem/operations.hpp:24:0,                  from /usr/local/include/boost/filesystem/convenience.hpp:22,                  from pch.h:83,                  from pch.cpp:18: /usr/local/include/boost/filesystem/config.hpp:16:5: error: #error Compiling Filesystem version 3 file with BOOST_FILESYSTEM_VERSION defined != 3 In file included from util/goodies.h:22:0,                  from pch.h:161,                  from pch.cpp:18: util/concurrency/mutex.h: In function 'boost::xtime mongo::incxtimemillis(long long int)': util/concurrency/mutex.h:32:31: error: 'TIME_UTC' is not a member of 'boost' scons: *** [pch.o] Error 1 scons: building terminated because of errors. google原因因为 This is Version 3 of the Filesystem library. Version 2 is not longer supported. 1.49.0 was the last release of Boost to supply Version 2 不兼容,不兼容,兼容,容。。。。石化ing 好吧我错了,下1.49.0的 wget http://sourceforge.net/projects/boost/files/boost/1.49.0/boost_1_49_0.tar.gz 打开boost_1_49_0/tools/build/v2 sudo vi user-config.jam 去掉注释: using gcc : 4.4 : g++-4.4 ; 给与权限 chmod +x ./bootstrap.sh 如果报错tools/build/v2/engine/build.sh: Permission denied 继续给权限 manna@ubuntu:/etc/apt/boost_1_49_0/tools/build/v2/engine$ sudo chmod +x  ./build.sh sudo ./bootstrap.sh cpu开始转动了休息 建立链接 sudo ln -s /etc/apt/boost_1_49_0/boost /usr/include/boost  换个1.48.0的 果断报错 Performing configuration checks     - has_icu builds           : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add "using mpi ;" to your user-config.jam     - iconv (libc)             : yes     - icu                      : no     - icu (lib64)              : no     - ../config//has_gcc_visibility builds : yes     - ../config//has_long_double_support builds : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.jam. note: to suppress this message, pass "--without-mpi" to bjam. note: otherwise, you can safely ignore this message. wget  http://download.icu-project.org/files/icu4c/49.1.2/icu4c-49_1_2-src.tgz
cd source ./configure --prefix=/usr make
 
 

github的猫咪好可爱

2012-10-08 19:13:05


Git的实例好好用啊 http://try.github.com/levels/1/challenges/1
SVN  HG GIT
1,第一次下载,包括源码和版本库: svn checkout http://path/to/repo repo_name hg clone http://path/to/repo  repo_name git glone http://path/to/repo repo_name或者git glone git://path/to/repo repo_name
2,下载服务器上最新的更新: svn update hg pull && hg update -C git pull
3,检出某个修订版本 svn checkout -r <rev> hg update -C -r <rev> git reset --hard -r <rev>
4,新增被跟踪文件 svn add /path/to/file hg add /path/to/file git add /path/to/file
4,移除被跟踪文件 svn rm /path/to/file hg remove /path/to/file git rm /path/to/file
5,生成补丁 svn diff  >patch_file hg diff >patch_file git diff >patch_file
6,提交更改 svn commit hg commit git commit
6,查看当前状态 svn info hg status git status
7,查看修订记录 svn log hg log git log
8,启动服务器 svnserve -d hg serve -p 8002 & git daemon --base-path=/path/to/repo --export-all &