加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:53:58 所属栏目:百科 来源:网络整理
导读:我遇到了一个问题,即html.ts文件在某些??页面上运行两次,即使在浏览器中关闭了 AJAX也是如此.它似乎不是一个映射问题,因为即使我注释掉所有映射,它也会执行此行为.该页面在Chrome浏览器中看起来不错. 解决方法 如果没有通过AJAX或其他任何东西插入页面,那么
我遇到了一个问题,即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>标签.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读