Javascript 从移动网站解析apple touch图标

Javascript 从移动网站解析apple touch图标,javascript,html,dom,mobile,device-detection,Javascript,Html,Dom,Mobile,Device Detection,使用给定的url(如www.example.com),我希望通过搜索dom中的此属性来提取apple touch图标: <link rel="apple-touch-icon" href="touch-icon-iphone.png"> 问题是example.com在普通网站上不提供此标签,而只是在mobile m.example.com网站上。我认为他们使用服务器端设备检测,并且只在移动设备上添加这个标签。 你知道我如何在这样的网站上获得这些图标吗?如果example.com

使用给定的url(如www.example.com),我希望通过搜索dom中的此属性来提取apple touch图标:

<link rel="apple-touch-icon" href="touch-icon-iphone.png">

问题是example.com在普通网站上不提供此标签,而只是在mobile m.example.com网站上。我认为他们使用服务器端设备检测,并且只在移动设备上添加这个标签。
你知道我如何在这样的网站上获得这些图标吗?

如果
example.com
m.example.com
移动版本,他们很可能是在重定向手机用户使用的

该网站的服务器基本上会查看您的请求的
用户代理
HTTP头,并将其与一组值进行匹配,以检测移动浏览器。下面是一个如何在Apache中完成的示例:

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} (.*)iPhone(.*) [NC,OR]
RewriteRule ^ http://m.example.com [L,QSA]
好消息是,您可以通过自己设置头来欺骗服务器为您提供服务
m.example.com
。下面是curl的一个示例:

curl facebook.com

curl facebook.com -L -A "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"

第一个将检索facebook.com的HTML,第二个将用户代理头设置为iPhone的值。请注意,我们必须使用-L选项,以便curl遵循从
facebook.com
m.facebook.com

的重定向,服务器端重定向可能使用
用户代理
HTTP头来检测iOS并转发到移动站点响应,如果您是从前端执行此操作,出于安全原因,您将无法通过XHR设置该特定标头。您需要在后端设置代理服务,以设置
用户代理
头,发出请求,然后将其返回给JS函数。