微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax -html.ts文件在我的moovweb项目中运行了两次

我遇到了一个问题,即html.ts文件在某些​​页面上运行两次,即使在浏览器中关闭AJAX也是如此.它似乎不是一个映射问题,因为即使我注释掉所有映射,它也会执行此行为.该页面在Chrome浏览器中看起来不错.

解决方法

如果没有通过AJAX或其他任何东西插入页面,那么这可能是由于形成错误的html.如果< head>之外的源中有任何内容,< body>或者< html>,Gokogiri将外围标记包装在单独的< html>中标签.然后因为有两个开始和结束< html>标签,html.ts将运行两次.
解决方案是在我们告诉Gokogiri如何处理它之前捕获传入的页面,并通过确保所有内容都包含在< body>中来修复损坏的html.标签.

在项目文件夹的scripts / main.ts中,之后

match($content_type) {
  with(/html/) {

添加此项,删除< / body>和< / html>标签并将它们追加到最后:

# wrap markup that is outside the body so tritium doesn't get applied twice
  replace(/\<\/body\>/,"")
  replace(/\<\/html\>/,"")
  append("</body> </html>")

这应该确保只有一个开头关闭< html>传递给Gokogiri的标签,html.ts只运行一次,因为我们想要它!

源可能在Chrome中看起来没问题,因为当Tritium代码操作页面时,它会移动来自< html>的内容.标记到第一个,当Chrome收到该页面时,它会擦除​​第二个,空的< html>标签.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐