通过 validator.w3.org 运行您的 URL 会显示一些警告信号:
Line 77, Column 14: document type does not allow element "noscript" here; assuming missing "object" start-tag
Line 154, Column 699: document type does not allow element "meta" here
我能够将(潜在的)问题缩小到您页面中的这些行:
document.write('<a href="' + OAS.config.url + 'click_nx.ads/' + OAS.config.sitepage + '/1' + OAS.config.rns + '@' + OAS.config.listpos + '!' + pos + '?' + OAS.config.query + '" target=' + OAS.config.target + '>');
document.write('<img src="' + OAS.config.url + 'adstream_nx.ads/' + OAS.config.sitepage + '/1' + OAS.config.rns + '@' + OAS.config.listpos + '!' + pos + '?' + OAS.config.query + '" border=\"0\" /></a>');
这些 document.write() 行也未能通过 w3.org 验证器:
Line 53, Column 197: character "+" is not allowed in the value of attribute "target"
此外,我认为使用 document.write() 插入 DOM 是不好的(因为它会导致页面渲染阻塞)。你能改成使用 js 对象和 DOM 操作吗?
在 FB 获取您的 URL 后,它会通过一个 DOM 解析器运行它,当它遇到那些 document.write() 行时可能会窒息。这些行有一个跨越两个 document.writes() 的 <a> 元素这一事实可能会使解析器感到困惑。解析器可能认为它已到达页面的 <body>,因此出现“正文中的元标记”错误。
作为一个快速测试,尝试将 fb:admins 元标记放在这些 document.write() 行之上。虽然,如果解析器仍然阻塞,我不会感到惊讶,但值得一试。
为了测试您页面的 html 源代码,我使用了此 php.net 页面末尾的评论中提供的简单脚本:
http ://www.php.net/manual/en/class.domxpath.php
它产生了错误:
Unexpected end tag : a in /home/dlee/tmp/tmp.html, line: 54
Unexpected end tag : head in /home/dlee/tmp/tmp.html, line: 183
htmlParseStartTag: misplaced <body> tag in /home/dlee/tmp/tmp.html, line: 184
其中 tmp.html 是保存到文件的页面的 html。第 54 行是前面提到的 document.write() 行。
如果上述任何结果正在进行中,请告诉我,我将相应地编辑此答案。