Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用浏览器执行Javascript_Javascript_Html_Cocoa Touch_Cocoa_Asihttprequest - Fatal编程技术网

不使用浏览器执行Javascript

不使用浏览器执行Javascript,javascript,html,cocoa-touch,cocoa,asihttprequest,Javascript,Html,Cocoa Touch,Cocoa,Asihttprequest,在我正在开发的应用程序中,我从服务器下载了我的一个网页,然后解析代码以获取信息。我正在使用ASIHTTPRequest从服务器获取代码。问题是网页使用Javascript在页面上设置一些文本,而ASIHTTPRequest从服务器中提取代码,因此Javascript永远不会执行,因此网页缺少信息。有没有一种简单的方法可以在没有浏览器的情况下执行Javascript,从而让它更新代码?另外,目前我正在为OSX 10.9而不是iOS开发应用程序。没有浏览器,您无法在网页上执行javascript。浏

在我正在开发的应用程序中,我从服务器下载了我的一个网页,然后解析代码以获取信息。我正在使用
ASIHTTPRequest
从服务器获取代码。问题是网页使用Javascript在页面上设置一些文本,而
ASIHTTPRequest
从服务器中提取代码,因此Javascript永远不会执行,因此网页缺少信息。有没有一种简单的方法可以在没有浏览器的情况下执行Javascript,从而让它更新代码?另外,目前我正在为OSX 10.9而不是iOS开发应用程序。

没有浏览器,您无法在网页上执行javascript。浏览器正是呈现网页并让代码与之交互的软件。这不是ASIHTTPRequest所能做到的

但是,您可以使用基本上是无头且可编写脚本的浏览器。但在你的应用程序中打包可能很棘手

或者,为了留在Cocoa领域,您可以加载一个包含您想要的页面的WebView,而不在屏幕上显示它。然后可以在该WebView中执行javascript以返回数据


然而,这似乎是个坏主意。下载页面及其所有资产、解析和呈现页面,然后执行javascript是一项缓慢且内存密集的操作。如果您可以让服务器只提供您想要的数据,而不必运行任何复杂的客户端脚本,那么它将变得更加干净


在不知道自己想做什么的情况下,很难给出更多建议,但请帮自己一个忙,重新思考一下您的策略。

R编程也会出现这个问题。R
readLines()
函数将愉快地接受一个URL,并将网页吸收到一个内部字符串向量中。但是,如果该网页是javascript,则脚本不会运行。因此,文本可能与实际浏览器中同一网页上显示的内容完全不同


幻像可能也是解决方案。

我不熟悉OSX,但应该有一种方法使用隐藏的浏览器窗口。我猜你可以使用WebKIT框架,就像OS席中的很多应用程序重新思考我的策略,但我最终还是用幻像来结束。它使用起来相当简单。我只是使用了一个NSTask来处理与我编写的脚本的接口。