2013-03-15 122 views
0

我想检查一些来自Perl的DOM值(我不想手动使用浏览器和调试器)。AJAX调用后检索DOM值

这些DOM值AJAX调用加载后,对于这些值中的一个样本函数是:

<script language="javascript"> 
    try { 
     var openValue = FComma(fnRound(Symbol[24],2)); 
     if (openValue == "0.00") document.write('n/a'); 
     else document.write(openValue); 

    } catch (exception) {} 
</script> 

我无法从AJAX直接得到它。我想知道在AJAX调用完成后是否有可能获取DOM值。此调用仅在开始时完成。

+0

你确定这是一个Ajax调用?因为在页面加载后执行document.write会炸掉页面,并且ajax调用通常只会在页面加载后返回(因为它是异步和全部)。你可能做非ajax的东西,并称它为ajax,因为你不明白ajax的含义。 – slebetman 2013-03-18 09:06:17

+0

我的意思是这个网页:nyse.com/about/listed/lcddata.html?ticker=RDSB。我想检查“纽约证券交易所只关闭”的价值。 – MaMu 2013-03-18 15:53:31

回答

0

我会做什么(呃,尝试,因为我不确定这会做你想做的)是:使用安装了Web Developer加载项的Firefox。页面加载完成后,AJAX内容完成后,转到Web Developer的“查看源代码”菜单并选择查看生成的源代码;将源文件复制/粘贴到您的编辑器和/或Perl脚本中,然后执行您想要的操作。

+0

我只想使用脚本。 – MaMu 2013-03-18 08:49:51

0

尝试使用WWW::Scripter

use WWW::Scripter; 
$w = new WWW::Scripter; 
  
$w->use_plugin('Ajax');  # packaged separately 
  
$w->get('http://some.site.com/that/relies/on/ajax'); 
$w->eval(' alert("Hello from JavaScript") '); 
$w->document->getElementsByTagName('div')->[0]->.... 
  
$w->content; # returns the HTML content, possibly modified 
             # by scripts