我们要加载的文件中的Jquery.load()和脚本标记

时间:2017-01-12 19:12:20

标签: jquery html dynamic-loading script-tag

嗯,这很奇怪,但是很简单,当我尝试在我的页面更改主索引的某些内容之前加载时,我注意到出现了问题,因为它只显示了实际的年份" 2017" ,现在我可以确认一下,因为创建了两个文件test1.html和test2.html发生了这种情况:

Test1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script>
        $(document).ready(function() {
            $("#test").load("test2.html");
        });
    </script>
</head>
<body>
    <div id="test"></div>
</body>
</html>

Test2.html

aaaaaaaaaaaaaa<br>
<script>document.write(new Date().getFullYear())</script>

结果:

result

那么,我该怎么做才能避免这种情况并毫无后顾之忧地展示一切? 尝试制作单独的功能既不起作用......

修改

现在,有人告诉我使用document.write是问题所在,我的问题是这是一个简单的解决方案,声明一个html元素以后写它的内容有点不那么简单和重,所以,我的实际问题是知道document.write是否有轻量级替换?

1 个答案:

答案 0 :(得分:0)

我硬编码了我自己的解决方案,使一切变得简单,我创建了一个名为data-func的数据属性的元素,后来我做到了这一点:

$(document).ready(function() { 
     var fncs = $('[data-func]');
     fncs.each(function () {
         $(this).text(window[$(this).data("func")]);
     });
});

功能:

function getYear() {
    return new Date().getFullYear();
}

元素:

<span data-func="getYear"></span>

这就是全部!