使用 json 回调进行链接共享
Link sharing with json callback
我正在创建一个从 url 返回元标记的链接共享
因此,我创建了一个名为getmeta的页面.php并将所有信息放入一个数组中,最后使用json进行编码
$url = $_GET['link'];
if(!empty($url)) {
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$html = file_get_contents_curl($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
if($meta->getAttribute('property') == 'og:image')
$thumb = $meta->getAttribute('content');
}
$page = preg_replace( '/(http|ftp)+(s)?:('/'/)(('w|'.)+)('/)?('S+)?/i', '$4', $url );
$arr = array('title' => $title, 'thumb' => $thumb, 'page' => $page, 'url' => $url);
echo json_encode($arr);
}
我在 ajax 中使用 $.get 方法进行回调,如下所示
function getThumb(url) {
$.get( 'getmeta.php', { link : encodeURI(url) } , function( data ) {
var title = data[0].title;
var page = data[0].page;
var thumb = data[0].thumb;
thumb_image.css({"background-image":"url("+thumb+")"});
thumb_title.html('<span>' + title + '</span><span><i class="fa fa-link"></i>'+page+'</span>');
}, "json" );
}
现在,代码似乎正确,但它每次都返回空调用。我只是无法弄清楚我错在哪里。有什么想法吗?
$arr = array('title' => "title", 'thumb' => "thumb", 'page' => "page", 'url' => "url");
echo json_encode($arr);
OUTPUT: {"title":"title","thumb":"thumb","page":"page","url":"url"}
因此,data[0]
是未定义的,您可能会在控制台中看到错误。如果这确实是您问题的根源,则可以通过在 JS 中删除三个变量[0]
轻松修复。
正如@ArunPJohny在他的评论中提到的,您应该真正开始使用console.log
来帮助您调试此类问题。
您的代码可能遇到的另一个问题是,在$.get
回调函数中,data
实际上是一个字符串。这需要在某个时候解析为 JSON,或者您应该直接使用 $.getJSON
。
相关文章:
- Facebook共享动态参数链接
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- LinkedIn共享链接图片未使用自定义url更新
- 如何与Promises链接和共享先前的结果
- 获取当前页面的URL并将其附加到Facebook共享链接(使用javascript)
- 带有文本参数的Facebook共享者链接
- 如何在谷歌网站中显示与iframe中的特定人员共享的谷歌云端硬盘html链接
- 使用 json 回调进行链接共享
- 如何创建共享单个列表的链接下拉列表,并确保只能在一个下拉列表中选择每个值
- 如何使用 JavaScript 在共享按钮中显示链接
- 社交共享链接弹出窗口在共享页面上未显示正确的URL
- 在 Javascript 中使用 Google Drive 共享链接
- 没有链接的Facebook共享对话框
- 是否可以临时登录Facebook以共享链接
- 从 web JS 功能在 fb-messenger:// url 方案上共享私人消息中的链接
- 有fb.ui对话框选项吗;共享此链接“;功能
- 如何使用Phonegap for iPad通过ShareKit共享图像文件/链接
- "共享屏幕”;在Skype链接上
- Pinterest共享HTML链接错误
- 创建一个像facebook一样的链接共享功能