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

时间:2015-02-07 06:19:27

标签: javascript google-chrome internet-explorer firefox

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

我正在谈论实时编辑,对对象原型的更改会影响已创建的实例。

4 个答案:

答案 0 :(得分:1)

我发现的唯一一件事就是告诉你的网络服务器发送一个刷新参数,其值为5秒。
我没有时间测试这个。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

使用iframe!

在javascript(主站点 - 而不是iframe)中,您可以重写进入Iframe的html,然后追加iframe或只调用iframes contentwindow的.open - .write - .close方法。 (我没有这方面的代码,但你可以在网上找到它......)

我试图制作这样的东西,至少有一个问题你需要照顾:

我的代码包含一个不要停止的循环,至少Chrome浏览器会释放! (也是主要网站)

答案 3 :(得分:1)

如果我正确理解了这个问题,您需要检测某些代码何时更改并在页面上进行渲染。

如果要检测外部代码文件何时更改并在应用程序中使用它,您可以使用HTML5轮询甚至是websockets。

主要问题在于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/

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

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