0

Comments

有时候蛋疼一下,用PHP自动抓取一些东西。不过碰到ASP.Net这玩意儿顿时傻眼了,翻页等等都是用控件实现的。

1

还好以前学了点皮毛,知道用ViewState这神奇的玩意儿,知道这个就足够了,打开FireFox,以及HttpWatch,点一下“下一页”请求一下:

2

其他的没啥用,最重要的是最三面的三个参数。分别是viewstate,方法,参数。

很好办了。curl请求一下。就能获取到刷新后的页面了。

所以。。。HttpWatch真是神器,同样的FireBug、Fiddler也是!

Tips:viewstate的值可以用phpquery或者simple html dom 轻松获取,当然,如果蛋疼一下,用正则去获取也是可以的。

< ,,, >
6

Comments

我是工具控,有啥新工具都爱用。
之前介绍过两款AMF抓包工具Charles ServiceCapture,今天再介绍一款非常靠谱的:AMF Explorer
AMF Explorer是一款不错的基于FireFox、Firebug的调试插件。
工具首页:http://amfexplorer.riaforge.org/

< ,, >
0

Comments

因为FireFox和IE的高度计算方式不同,所以导致了SWFObject嵌入SWF文件时的某些问题。

这两天就遇到了奇怪的问题,在嵌入SWF的时候将高度设置为100%的时候,IE显示正常,FF下愣是不显示,搜索了一下发现官网的第一条就是关于这个问题的(SWFObject Wiki FAQ)。官网的建议是这样的:

<style type="text/css" media="screen">
      html, body, #containera, #containerb { height:100%; }
      body { margin:0; padding:0; overflow:hidden; }
    </style>

不过这种灵活性比较低。我现在遇到的情况是这样的,布局分三块:

第一块:头部和导航栏

第二块:主内容

第三块:底部

第一块和底部的高度的确定的,分别为120px和80px。主内容块的高度为整个可视区域减去120px+80px;

因此就需要对SWFObject推荐的嵌入代码作如下修改:

<script type="text/javascript">
        var flashvars = {};
        var params = {
            menu: "false",
            scale: "noScale",
            bgcolor: "#FFFFFF"
        };
        window.onresize = function() { 
            document.getElementById("altContent").height = document.body.clientHeight – 160;
        }
        swfobject.embedSWF("AlbumManager.swf", "altContent", "100%", document.body.clientHeight – 160, "9.0.0", "expressInstall.swf", flashvars, params);
    </script>

也就是说使用JavaScript模拟了“100% ”。

< ,,, >
2

Comments

这个东东是Fraser推荐我用的,的确很不错。之前我一直用mht格式保存网页,这个将网页保存为pdf格式的小工具比较实用。

官方网站:http://www.pdfdownload.org/

提供了两种方式:

  1. FireFox的插件IE7 &8 的插件
  2. 网页方式(2009-3-19早上无法访问,服务器错误)

推荐用插件的方式,这样非常方便,而且支持中文:)

< ,, >
0

Comments

缓存问题有时非常烦人,通常是加个时间戳或者说是加个参数。

在FireFox下,有更好的解决方案。

  1. 打开FireFox
  2. 输入about:config
  3. 同意警告,继续
  4. 找到browser.cache.disk.enable,双击设为false;

呵呵,就是这么简单:)

< ,,, >
2

Comments

FireBug是咱的调试好助手。可是不能动态地跟踪一些东东。

最近一同学在开发一玩意儿(是美女哦^o^),发现用的是HttpWatch,这玩意儿之前还真没发现过,俺孤陋寡闻了。

这玩意儿支持IE和FireFox(据说是最新的6.X版才支持的)

官方的定义是

HttpWatch is an HTTP viewer and debugger that integrates with IE and Firefox to provide seamless HTTP and HTTPS monitoring without leaving the browser window.

详情请参照

http://www.httpwatch.com/

有免费的Basic版的,也有收费版的,从395美刀到35995美刀不等~

< ,, >
0

Comments

前天写了一篇博文关于onload事件在FireFox和IE下的区别。(暂时不测试Opera,NetScape,Safari等浏览器)

再补充一下:

IE是在Document内容载入前即执行。

而FireFox是等待Document内容全部载入后再执行。

具体表现是,如果在onload中要获取某个element是取不到的,而FireFox却没有问题。

一种比较好的方法就是把 window.onload=onload();写到html的末尾。

或者设置一个定时器,大约3秒左右执行,但这个并不怎么保险:)

HTML真是高深莫测。

PS:最近公司.Net组人手紧缺,So,我又做老本行了。。。亲爱的Flex呀,啥时候才能回去呀?!

< ,, >
1

Comments

<body onload=”somfunc()”>

这个在IE下是没问题的,可在FireFox下就是不执行。

这个问题比较的细节。这样写,就会运行了。

<script type = “text/javascript” language =”javascript”>

document.body.onload = somfunc();

</script>

但是更好的方法是

document.body.onload=new Function(‘somfunc()’);

Attention:somfunc必须已经被实现。

< , >
0

Comments

这个还是很有用的,特别是Flex对Flash Player的版本要求还是有那么点高的。

记录一下,呵呵:)

<script type=”text/javascript”>
function getFlashVer() {
var f=”";
var n=navigator;
if (n.plugins && n.plugins.length) {
for (var ii=0;ii<n.plugins.length;ii++) {
if (n.plugins[ii].name.indexOf(‘Shockwave Flash’)!=-1) {
f=n.plugins[ii].description.split(‘Shockwave Flash ‘)[1].split(‘ ‘)[0];
break;
}
}
} else if (window.ActiveXObject) {
for (var ii=10;ii>=2;ii–) {
try {
var fl=eval(“new ActiveXObject(‘ShockwaveFlash.ShockwaveFlash.”+ii+”‘);”);
if (fl) {f=ii + ‘.0′; break; }
}
catch(e) {}
}
}
document.write(“Flash Player version: <b>”+f+”</b>”);
}
getFlashVer();
</script>

< ,,, >