我将在一段时间内扮演一个魔鬼的拥护者.我一直在想为什么浏览器检测(与特征检测相反)被认为是一种不好的做法.如果我测试某个版本的某个浏览器并确认,某个功能的行为是以某种可预测的方式进行的,那么决定做特殊情况似乎没问题.原因在于它将来会万无一失,因为这部分浏览器版本不会改变.另一方面,如果我检测到DOM元素具有函数X,则不一定意味着:
我只是偷看了jQuery源代码,他们通过在DOM中插入一个精心构建的HTML片段然后检查它的特定功能来进行特征检测.这是一种明智而坚实的方式,但我会说,如果我在我的小小的个人JavaScript(没有jQuery)中做了类似的事情,那将会有点太沉重.它们还具有几乎无限的QA资源的优势.另一方面,你经常看到人们做的是他们检查函数X的存在,然后基于此,他们假设函数将在具有此函数的所有浏览器中以某种方式运行.
我没有说任何意义上的功能检测不是一件好事(如果使用得当),但我想知道为什么浏览器检测通常会立即被解雇,即使它听起来合乎逻辑.我想知道这是否是另一个时髦的事情.
可能重复:
属性属性的Html验证错误
根据facebook使用他们的喜欢按钮和开放图形元标记你需要将这样的东西放到你的html页面.
<meta property="og:title" content="The Rock"/>
<meta property="og:type" content="movie"/>
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/>
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
<meta property="og:site_name" content="IMDb"/>
Run Code Online (Sandbox Code Playgroud)
他们到底在玩什么?这是无效的html,属性'属性'不是,并且从来不是元标记的属性所以为什么地球上有facebook使用这个而不是<meta name ="og:title"content ="The Rock"/>?
我不愿意在我的网站上使用有效的"名称"而不是"财产"来尝试,因为如果我尝试并且它在我的网站上不起作用,那么任何在我测试时点击的人都会失败.那么......有没有人知道我是否使用'名称'而不是'属性'这仍然有用吗?
HTML 5验证器在我的代码上失败,尽管我遵循了Facebook的文档.有各种各样的问题,但让我们先从一个例子开始.
我正在关注Facebook"入门"文档并使用th5is代码:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="http://www.facebook.com/2008/fbml">
Run Code Online (Sandbox Code Playgroud)
唯一的区别是我在<!DOCTYPE html>HTML5 之前.通过W3C HTML5验证器运行时,我收到此错误:
Attribute xmlns:og not allowed here
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一错误是:
<!DOCTYPE html>声明中添加某种命名空间.但是,在任何一种情况下我都不知道修复是什么.会爱一些帮助!
我在一个前端在angularjs,后端在的站点上工作ROR, SameROR API用于android app也 。现在我这里有一个情况。我需要在社交媒体上分享我的网站帖子,例如facebook,twitter和google plus。除了单个帖子的链接外,还应该有一个small preview(帖子的预览,在发布之前会爬行,例如在 facebook 中)。我使用 angular Plugins 做到了。但是在Android方面,他们分享的内容和在Facebook上显示的内容只是链接。然后我做了一些研发,我开始知道它必须在服务器端使用social media meta tags. 我做了一点,但仍然没有效果。我坚持下去了。以下是我到目前为止所做的。
def show
@post = Post.find_by_permalink(params[:id])
respond_to do |format|
format.html
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
在我的意见posts/show.html.erb
<!DOCTYPE html>
<html>
<head>
<title> Shared Question</title>
<meta property="og:title" content="My Page" />
<meta property="og:description" content="A description of my page." />
<meta property="og:image" content="http://www.example.com/images/my_lovely_face.jpg" />
<!-- etc. -->
</head>
<body>
Here is the body …Run Code Online (Sandbox Code Playgroud) ruby-on-rails web-crawler google-crawlers angularjs ruby-on-rails-4
有没有办法在我的网站的head部分验证Facebook Open Graph协议元标记?代码如下.
<meta property="og:title" content="my content" />
<meta property="og:type" content="company" />
<meta property="og:url" content="http://mycompany.com/" />
<meta property="og:image" content="http://mycompany.com/image.png" />
<meta property="og:site_name" content="my site name" />
<meta property="fb:admins" content="my_id" />
<meta property="og:description" content="my description" />
Run Code Online (Sandbox Code Playgroud)
-edit-我的意思是验证HTML.对困惑感到抱歉!由于这些标签,我的网站现在无效.
facebook ×3
opengraph ×3
angularjs ×1
dom ×1
html ×1
html5 ×1
javascript ×1
protocols ×1
validation ×1
web-crawler ×1
xhtml ×1