让浏览器获取源代码并重新编译脚本以进行实时编辑

Getting browsers to source and recompile script for live editing

本文关键字:脚本 编辑 实时 编译 源代码 获取 浏览器 新编译      更新时间:2023-09-26

在不涉及浏览器特定扩展或浏览器特定调试协议的情况下,如何仅从客户端代码触发脚本源代码和重新编译?

我说的是实时编辑,对对象原型的更改会影响已经创建的实例。

我发现的唯一一件事是告诉您的Web服务器发送一个值为5秒的刷新参数
不过我还没有时间对此进行测试。

为什么不将文本存储在变量中,然后在其上存储eval()

使用Iframe!

在javascript(主站点,而不是iframe)中,您可以重写进入iframe的html,然后附加iframe,或者只调用iframe内容窗口的.open-.write-.close方法。(我没有这个的预购代码,但你可以在网上找到…)

我试着做这样的东西,但至少有一个问题你需要解决:

我你的代码包含一个不会停止的循环,至少chrome浏览器会刷新!(也是主站点)

如果我正确理解这个问题,您需要检测某些代码何时更改,并在页面上呈现它。

如果你想检测外部代码文件何时更改并在应用程序上使用它,你可以使用HTML5轮询甚至websocket。

主要问题是JavaScript,因为它需要由浏览器执行。

对于代码执行,我个人不喜欢eval(),你有没有考虑过在头上或身上附加一个脚本?代码很容易理解:

var s = document.createElement("script");
s.type = "text/javascript";
s.id = "codetoexecute";
s.innerHTML = thecode;
$("head").remove("#codetoexecute");

http://jsfiddle.net/s6tkyxyh/1/

在下面的例子中,我使用一个简单的文本区域来编写一些JavaScript。我还添加了一些变量。

请记住,这是一个非常糟糕的做法,因为你必须注意内存泄漏以及每个函数或变量的范围。建议使用全局访问的方法和属性,因为调试太难了。