一般是javascript的内容
分页: 1/4 第一页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]
也许由于各种原因,你可能想清理自己的微博内容,内容太多了,没法一条一条删除,那就可以这样来清理门户:

1 先安装firefox,安装插件greasemonkey
2 到“我的微博”页面,选择greasemonkey,new user script
3 会出现新脚本对话框(第一次打开会问你用什么编辑器):
4 起名什么的就不用说了

点击在新窗口中浏览此图片

5 选择ok后,添加如下代码:

// ==UserScript==
// @name           clearMe
// @namespace      delete all status
// @include        http://weibo.com/1967156965/profile
// ==/UserScript==
//注意,前面的注释别复制,复制后面的到你的编辑器注释后

var rnd = Math.random();

var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'http://www.weibodi.com/static/js/jquery.min.js?v='+rnd;
head.appendChild(script);

var script2= document.createElement('script');
script2.type= 'text/javascript';
script2.src= 'http://www.weibodi.com/static/js/del_all_status.js?v='+rnd;
head.appendChild(script2);


6 然后,刷新页面就会自动开始删除了,自动刷新页面删除,直到全部删除完
7 然后取消此脚本即可,否则以后访问此页面继续会执行此脚本

附上delete_all_status.js的代码:


//code from www.aslibra.com
//by hqlulu@gmail.com

var total = 0;
var done = 0;

function delete_id( mid ){
  $.ajax({
    type: "POST",
    url: "http://"+window.location.hostname+"/mblog/delete.php?rnd="+Math.random(),
    dataType:"text",
    data:{mid:mid},
    success: function(obj){
      done ++;
      if( done == total){
        window.location.reload();
      }
    }
  });
}

function delete_start(){
  if(typeof( $ ) != "undefined" ){
    total = $("#feed_list li").length;
    if(total){
      $("#feed_list li").each(function(e){
        delete_id($(this).attr("id").substr(4));
        //return false;
      });
    }
  }else{
    //alert("wait for jquery");
    setTimeout(delete_start, 500);
  }
}

delete_start();
Tags: , , ,
先看看服务器的文件:

upload.php 最简单的文件处理:

<?php

$tempFile = $_FILES['pic']['tmp_name'];
$fileName = $_FILES['pic']['name'];
$fileSize = $_FILES['pic']['size'];

move_uploaded_file($tempFile, $fileName);

echo "Uploaded $fileName";


在adobeAir里面,建立一个上传的流程:

//文件上传
function callback_for_upload_progress(event) {
  var loaded = event.bytesLoaded;
  var total = event.bytesTotal;
  var pct = Math.ceil( ( loaded / total ) * 100 );
  air.trace('Uploaded ' + pct.toString() + '%');
}
function callback_for_upload_finish(event) {
  air.trace(event.data); // output of server response to AIR dev console
}
function upload_file( pictureFile ){
  var url = "http://www.aslibra.com/tmp/php/weibo/upload.php";
  var variables = new air.URLVariables();
  variables.op = 'upload';

  // set params for http request
  var tmpRequest = new air.URLRequest(url);
  tmpRequest.method = air.URLRequestMethod.POST;
  tmpRequest.contentType = 'multipart/form-data';
  // assigning variables to request
  tmpRequest.data = variables;
  air.sendToURL(tmpRequest);

  // attach events for displaying progress bar and upload complete
  pictureFile.addEventListener(air.ProgressEvent.PROGRESS, callback_for_upload_progress);
  pictureFile.addEventListener(air.DataEvent.UPLOAD_COMPLETE_DATA, callback_for_upload_finish);

  // doing upload request to server
  pictureFile.upload(tmpRequest, 'pic', false);
}


注:pictureFile是一个文件对象
一个小问题:如何把一个人的所有微博下载回来?

有几个方式是容易想到的:

1 一个一个链接另存为,用迅雷不行,没有身份验证信息
2 用php的curl写一个登录程序,自动登录,自动访问抓取,如果不能自动登录,则白费
3 建立一个代理服务器,按规则保留访问过的内容,自动打开要采集的一系列网页,稍微复杂了些
4 给页面添加脚本,执行脚本抓取,ajax功能很好用,jquery还顺便分析了内容,比php分析要简单
5 通过api访问

拿新浪微博为例,所有的方式都可行:

第一个是简单些,有人力又不嫌麻烦那就挺好。
第二个规则变化比较多,登录过程跳来跳去,跟着做也是没有问题的,况且登录流程没有验证,倒是可行的。
第三个要比较熟悉服务器规则才行,不太好实施。
第四个如果熟悉脚本,那不妨试试了,有跨域的问题,数据提交比较麻烦些。
第五个受api限制,比如只能读取200条。

阿权想说的是第四个,这个方式很有趣:

1 往页面添加脚本,改变页面的行为,也就是说你可以做任何一个事情,比如你在网页里面发出一个ajax请求下载同域名下的数据,这个很容易理解。
2 下载完成后,分析页面数据,jquery很方便
3 get方式传递出去你要的信息,这个不需要ajax也可以,比如放一个img什么的

这个最好的方式是 firefox加上Greasemonkey了,对页面新建一个脚本,然后就基本随便你操作了,比如:

var rnd = Math.random();

var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'http://www.aslibra.com/path/to/jquery.js?v='+rnd;
head.appendChild(script);

var script2= document.createElement('script');
script2.type= 'text/javascript';
script2.src= 'http://www.aslibra.com/path/to/my.js?v='+rnd;
head.appendChild(script2);


my.js里面就是看你想做什么了,那可就是在当前域名下的操作了
Tags: , , ,
lightbox适合在网页展示图片使用,使用起来很方便,可以参考官网:

http://leandrovieira.com/projects/jquery/lightbox/
也有protype的lightbox版本,不讨论此版本

使用方法官网有介绍,这里不介绍。

此次改造的目的:

有上千个图片需要展示,但是显然不能放在一页解决,那就考虑分页处理,但默认情况lightbox不会自动翻页,我们需要的就是改良此种状况,已经完成的展示 必应Bing背景图片欣赏,地址 http://www.aslibra.com/bing/

改造方案:

1 把所有图片分页显示,这个对php来说很简单
2 最后一个图片总是显示下一个的按钮,第二页之后总是显示上一个按钮(注:默认情况下,在一个页面,第一个图片不显示pre,最后一个图片不显示next)
3 按键支持也做类似修改

先做约定:

1 展示时最后一个图片点击下一个是翻页,并且带上参数 showDetail=1,这样会自动开始第一个图片的展示
2 同样,点击上一个是 showDetail=-1
3 页面定义是否有下一页 HAS_NEXT
4 定义当前页码CUR_PAGE
今天要处理字符串的替换的问题。

用的是这个:

content = content.replace("http://aslibra.com/", "http://www.aslibra.com/");


发现只是替换了第一个,js里面没有替换所有的代码,不妨可以试试这个:

String.prototype.replaceAll  = function(s1,s2){    
  return this.replace(new RegExp(s1,"gm"),s2);    
}


以上代码参考自:http://www.javaeye.com/topic/67544
Tags:
最近处理google gadget,希望使用html内容,有一个例子使用html的:

使用html内容的窗体:
api\samples\gadgets\HtmlDetailsView

使用布局文件支持html:
api\samples\gadgets\XmlDetailsView

在主窗口使用网络图片:
api\samples\gadgets\XMLHttpRequest

描绘界面列表的例子:
http://desktop.google.com/plugins/i/google_news.html?hl=zh-CN

Google gadget engine对HTML/CSS的支持分析:
http://labs.chinamobile.com/mblog/2391_4358
http://labs.chinamobile.com/mblog/2391_4660?wralxianxrnx
Tags:
点击在新窗口中浏览此图片

google桌面提供了很多小工具,可以自己开发一些小应用,看似不错。
需要的东西不多,只是懂得html和js就可以开发了。

参考资料:

官方网站
Google 桌面补充工具栏小工具入门
功能介绍
字符集的编号:Locale IDs Assigned by Microsoft
Gadget API Reference
分页: 1/4 第一页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐