0

我搜索了这个,但我一直在寻找关于

"<scr" + "ipt>"

我的问题是我想从我的 JavaScript 代码生成一些 JavaScript 代码。

我在下面复制了一个总体思路。怎样才能实现我想要的?是否需要使用外部 .js 文件?

document.write("var testprompt = prompt('What zindex page to change?');
var getpage = getElementById('mobileimage'+testprompt);
getpage.style.zIndex = '1000';");
4

5 回答 5

3

您正在寻找eval()。但是,我建议不要使用它,因为使用 eval 运行 JavaScript 代码存在许多安全问题。请参阅为什么使用 JavaScript eval 函数是个坏主意?.

于 2012-10-29T08:56:15.717 回答
1

使用 JavaScript 编写 JavaScript 的问题是浏览器只会执行代码的第一次传递。

用 document.write() 编写的 JavaScript 将不会被执行,因此变得毫无用处。为什么不能简单地将要执行的 JavaScript 编写为 JavaScript,而不是通过 document.write() 对其进行抽象?

于 2012-10-29T08:56:00.510 回答
1

这对我有用:

<html>

<body>
    <script>
        var i = 1;
        document.write(i);
        document.write("<scr" + "ipt> i = 2; document.write(i); </scr" + "ipt>");
        i = 3;
        document.write(i);
    </script>
    123
</body>

</html>
于 2012-10-29T09:40:19.847 回答
0

getElementById()仅在加载 DOM 后才起作用,而通过 编写的代码document.write()在解析 HTML 文档时立即执行。

您必须将代码封装在回调中,以便在加载 DOM 后执行(我建议使用像 jQuery 这样的库)。

于 2012-10-29T08:56:16.313 回答
0

在字符串之间不带“\n”的单行中运行它。有用。

document.write("var testprompt = prompt('What zindex page to change?'); var getpage = getElementById('mobileimage' + testprompt); getpage.style.zIndex = '1000';");
于 2012-10-29T08:58:10.290 回答