我遇到了一个问题,即html.ts文件在某些页面上运行两次,即使在浏览器中关闭了
AJAX也是如此.它似乎不是一个映射问题,因为即使我注释掉所有映射,它也会执行此行为.该页面在Chrome浏览器中看起来不错.
解决方法
如果没有通过AJAX或其他任何东西插入页面,那么这可能是由于形成错误的html.如果< head>之外的源中有任何内容,< body>或者< html>,Gokogiri将外围标记包装在单独的< html>中标签.然后因为有两个开始和结束< html>标签,html.ts将运行两次.
解决方案是在我们告诉Gokogiri如何处理它之前捕获传入的页面,并通过确保所有内容都包含在< body>中来修复损坏的html.标签.
解决方案是在我们告诉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] 举报,一经查实,本站将立刻删除。