首页 > 解决方案 > 传递一个 javascript 函数使我的视图空白

问题描述

我正在通过ruby​​ on rails中的application.js传递一个 javascript 函数,它在第一个视图中工作,但是当我更改为另一个视图时它不会加载,只是保持空白

这是 application.js

//= require rails-ujs
//= require jquery
//= require turbolinks
//= require owl.carousel
//= require jquery.lazyload
//= require tinymce-jquery
//= require activestorage
//= require_tree .
    function addView(){
      atOptions = {
        'key' : 'xxxxxxxxxxxxxxxxxxxxx',
        'format' : 'iframe',
        'height' : 250,
        'width' : 300,
        'params' : {}
      };
      document.write('<scr' + 'ipt type="text/javascript" src="http' + (location.protocol === 'https:' ? 's' : '') + '://www.bcloudhost.com/ecd09eb0e13224fce209c614c8e4ea98/invoke.js"></scr' + 'ipt>');
    }

然后我在局部视图中调用这个函数,如下所示: _article.html.erb

  <div class="side">
      <script type="text/javascript">
        addView();
    </script>
  </div>

这是我从控制台收到的消息

Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

如果您能帮助解决这个问题,我将不胜感激。

标签: javascriptruby-on-rails

解决方案


首先,您试图将脚本标签嵌入到另一个标签中。其次,您只是在文档中嵌入了一个 JS 文件,这似乎无助于在网页上呈现任何内容。如果您可以分享您的完整代码片段可能会有所帮助。

此外,查看您指定的错误,您的代码似乎试图使用其父元素删除 dom 元素。但是这里的父元素在其子 dom 树中不包含目标元素(您试图删除它)。因此,错误被抛出。


推荐阅读