免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11811 | 回复: 16
打印 上一主题 下一主题

如何执行网页中的javascript代码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-24 14:37 |只看该作者 |倒序浏览
20可用积分
比如有个网页是通过javascript显示当前时间,我用$mech->get却只能抓到javascript代码本身,

我如何才能得到网页中显示的时间呢?如果html里调用的js文件又如何去解释它呢?


PS: 对HTML和javascript不太熟悉,看了下SpiderMonkey和Plugin::JavaScript也没太理解,望各位达人赐教

最佳答案

查看完整内容

囧囧囧~~我就郁闷了,这个东西是需要浏览器执行的,你perl代码怎么解析?就算要解析,等于javascript的代码你用perl重写,一遍,有意义么?你上面的代码意思是获取本地系统的时间,直接用perl[ 本帖最后由 xti9er 于 2009-8-24 16:13 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-08-24 14:37 |只看该作者
原帖由 马三囧 于 2009-8-24 14:39 发表
比如有个网页如下: 我想得到  “09年08月01日 14:39:13”  而不是代码本身


var obj;
function getTime()
{
obj=document.getElementById("myDiv");
var myDate=new Date();
var y=myDate.ge ...



囧囧囧~~
我就郁闷了,这个东西是需要浏览器执行的,你perl代码怎么解析?
就算要解析,
等于javascript的代码你用perl重写,一遍,有意义么?

你上面的代码意思是获取本地系统的时间,
直接用perl

  1. C:\>perl -e "print scalar(localtime)"
  2. Mon Aug 24 16:08:53 2009
复制代码

[ 本帖最后由 xti9er 于 2009-8-24 16:13 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-08-24 14:39 |只看该作者
比如有个网页如下: 我想得到  “09年08月01日 14:39:13”  而不是代码本身

  1. <script type="text/javascript">
  2. var obj;
  3. function getTime()
  4. {
  5. obj=document.getElementById("myDiv");
  6. var myDate=new Date();
  7. var y=myDate.getYear();
  8. var m=myDate.getMonth()+1;
  9. m=m>9?m:"0"+m;
  10. var d=myDate.getDay();
  11. d=d>9?d:"0"+d;
  12. var h=myDate.getHours();
  13. h=h>9?h:"0"+h;
  14. var M=myDate.getMinutes();
  15. M=M>9?M:"0"+M;
  16. var s=myDate.getSeconds();
  17. s=s>9?s:"0"+s;
  18. var NowTime=y+"年"+m+"月"+d+"日"+" "+h+":"+M+":"+s;
  19. obj.value=NowTime;
  20. window.setTimeout("getTime()",1000);
  21. }
  22. </script>

  23. </head>
  24. <body onLoad="getTime()">
  25. <input type="text" id="myDiv" size="70" />
  26. </body>
复制代码

论坛徽章:
0
4 [报告]
发表于 2009-08-24 15:45 |只看该作者
解析js需要相关的引擎,IE和FF内嵌的有,听说perl里有个模块可以解析JS代码,只是听说而已。

论坛徽章:
0
5 [报告]
发表于 2009-08-24 15:57 |只看该作者
原帖由 马三囧 于 2009-8-24 14:37 发表
比如有个网页是通过javascript显示当前时间,我用$mech->get却只能抓到javascript代码本身,

我如何才能得到网页中显示的时间呢?如果html里调用的js文件又如何去解释它呢?


PS: 对HTML和javascript不太 ...


hello,

if you use CPAN module > WWW::Mechanize, pls check the FAQ:
    http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod
How can I get WWW::Mechanize to execute this JavaScript?

You can't. JavaScript is entirely client-based, and WWW::Mechanize is a client that doesn't understand JavaScript. See the top part of this FAQ.

论坛徽章:
0
6 [报告]
发表于 2009-08-24 16:15 |只看该作者

回复 #4 ulmer 的帖子

倒霉我在WIN下装WWW::Mechanize:lugin::JavaScript老是报错

论坛徽章:
0
7 [报告]
发表于 2009-08-24 16:16 |只看该作者

回复 #5 xti9er 的帖子

我就是想知道有没有什么模块可以模拟浏览器执行JS

论坛徽章:
0
8 [报告]
发表于 2009-08-24 16:24 |只看该作者
建议你别考虑直接用perl解析,如果你都能实现js解析,那几乎就是半个FF,或许你可以写个浏览器与FF  IE 抢市场了。

建议调用第三方插件来实现,OLE? WINAPI?

不知你想实现什么功能,坦白说出来或许还有人能帮你。

论坛徽章:
0
9 [报告]
发表于 2009-08-24 16:25 |只看该作者
原帖由 马三囧 于 2009-8-24 16:15 发表
倒霉我在WIN下装WWW::Mechanize:lugin::JavaScript老是报错


under windows, using cpan module: Win32::IE::Mechanize
under linux, try to use cpan module: JavaScript::SpiderMonkey (but SpiderMonkey installation is required)

论坛徽章:
0
10 [报告]
发表于 2009-08-24 17:01 |只看该作者

回复 #9 ulmer 的帖子

Win32::IE::Mechanize  是调用系统自带的ie浏览器?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP