【问题标题】:Content Missing - Javascript with CDATA内容缺失 - 带有 CDATA 的 Javascript
【发布时间】:2015-07-27 15:36:07
【问题描述】:

我正在与一个运行订阅网站的客户合作,该网站通过 javascript 播放嵌入式视频。突然,一些视频停止为会员加载。

我知道,几乎没有关于使用 CDATA 的 Javascript,但我注意到页面上包含损坏视频的代码如下:

<script>// <![CDATA[
var playerhost = (("https:" == document.location.protocol) ? "https://ezs386ed65eac750a03981460786bfd83bd9.s3.amazonaws.com/Screencasts/ezs3js/secure/" : "http://ezs386ed65eac750a03981460786bfd83bd9.s3.amazonaws.com/Screencasts/ezs3js/player/");
document.write(unescape("%3Cscript src='" + playerhost + "flv/7A8982DC-E9D7-D32B-4E1D561336E838BB.js' type='text/javascript'%3E%3C/script%3E"));
// ]]></script>

在视频正确加载的页面上有不同的 Javascript 嵌入代码

<script type="text/javascript">
var playerhost = (("https:" == document.location.protocol) ? "https://ezs386ed65eac750a03981460786bfd83bd9.s3.amazonaws.com/Screencasts/ezs3js/secure/" : "http://ezs386ed65eac750a03981460786bfd83bd9.s3.amazonaws.com/Screencasts/ezs3js/player/");
document.write(unescape("%3Cscript src='" + playerhost + "flv/7A899626-C7B6-2D94-AD06D645F57C90A6.js' type='text/javascript'%3E%3C/script%3E"));
</script>

这两个都在一周前工作,无法解释为什么 CDATA 代码不再工作。

谁能根据你在这里看到的解释一下?

【问题讨论】:

  • cdata 用于 xml。这些行与 JS 无关,因为它们已被注释掉 (//)。
  • “突然停止工作”通常意味着涉及其他事情。公司内网中是否有浏览器更新?网络服务器的变化? CloudFlare 或其他 CDN 放在前面?磁盘上的 HTML 和访问者之间的传递是否有任何变化?
  • 两者的区别是 NOT "javascript"。它们是字符串中的文本,这对 JS 没有任何意义。例如您的网址不正确/已过时。
  • 当我回到 ezs3 CDN 时,似乎所有视频的嵌入代码现在都已更改,并且他们删除了 CDATA 引用。那么也许他们不再支持那些嵌入代码了?
  • 我也不明白为什么将整个脚本包含在 CDATA 标记中。我的理解是,这是为了防止 XML 解析文本

标签: javascript cdata


【解决方案1】:

显然,导致问题的原因是 CDN 网络的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2012-02-18
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多