您可以使用自定义HTML替换页面上的javascript函数吗?

Vyr*_*tek 4 html javascript

我有一些JavaScript,可以在页面上创建某种小部件。我将把这个片段提供给客户,所以我希望他们做的很少。

我现在工作的最明显的解决方案是这样的:

<div id="divContent"></div>
<script type="text/javascript">
    MakeWidget('divContent');
</script>
Run Code Online (Sandbox Code Playgroud)

使小部件基本上查找divContent div并用小部件的html填充它。

有一个更好的方法吗?您可以使用脚本标记中的Java脚本将脚本标记替换为Div吗?

如果我可以将代码缩减为仅MakeWidget函数,并将其自身和script标签替换为该函数生成的html,我真的很喜欢。

编辑-我本质上是想生成在页面上调用MakeWidget函数的确切位置的HTML。

bob*_*nce 5

您可以使用脚本标记中的Java脚本将脚本标记替换为Div吗?

是。当<script>到达元素,假设它不是一个deferasync脚本,它会在页面中的最后一个脚本元素为止。因此,您可以内联或在外部脚本中说:

<script type="text/javascript">
    (function() {
        var scripts= document.getElementsByTagName('script');
        var script= scripts[scripts.length-1];
        var div= document.createElement('div');
        div.innerHTML= 'Whatever content is going to be inserted';
        script.parentNode.insertBefore(div, script);
    })();
</script>
Run Code Online (Sandbox Code Playgroud)