php – 通过jQuery获取META描述
发布时间:2020-12-13 22:09:13 所属栏目:PHP教程 来源:网络整理
导读:假设我做了一个简单的 AJAX请求(在jQuery中),比如geturl.php?url = http://google.com 和geturl.php是这样的: ?php if($_GET['url']) { $url=$_GET['url']; echo file_get_contents($url); }? 简单吧? 我如何从jQuery中返回的(非常长的)字符串中获取META
假设我做了一个简单的
AJAX请求(在jQuery中),比如geturl.php?url = http://google.com
和geturl.php是这样的: <?php if($_GET['url']) { $url=$_GET['url']; echo file_get_contents($url); } ?> 简单吧? 我如何从jQuery中返回的(非常长的)字符串中获取META描述? 这是我到目前为止所拥有的.是的,我知道,desc是错的. $.get("geturl.php?url="+url,function(response) { // Loading <title></title>data var title=(/<title>(.*?)</title>/m).exec(response)[1]; var desc = $("meta[name=description]").val(); $("#linkbox").html("<div><b>"+title+"</b><br/>"+url+"<br />Desc: " + desc) }); 解决方法
使用正则表达式解析HTML是
bad practice.
令人讨厌的是,jQuery不支持解析头部中的元素,只支持正文.所以直接用JS代替: window.onload = function(){ $.ajax({ type: 'GET',url: '/',dataType: 'html',success: function(data) { //cross platform xml object creation from w3schools try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(data); } catch(e) { try // Firefox,Mozilla,Opera,etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(data,"text/xml"); } catch(e) { alert(e.message); return; } } var metas = xmlDoc.getElementsByTagName("meta"); for (var i = 0; i < metas.length; i++) { if (metas[i].getAttribute("name") == "description") { alert(metas[i].getAttribute("content") || metas[i].getAttribute("edit")); } } } }); } 从David Burrows开始无耻地撕掉.谢谢,大卫! 小提琴:http://jsfiddle.net/wCL8W/8/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |