如何在用户在上一页输入的页面上运行Javascript?

如何在用户在上一页输入的页面上运行Javascript?,javascript,html,Javascript,Html,我需要在一个页面上保存用户编写的Javascript,并用于下一个页面。我的意思是,我需要获取div的内容,并以某种方式将其保存到一个.JS文件中,该文件将在下一页加载时自动运行。我有没有办法做到这一点,或者有没有其他方法可以做到这一点 基本上,Codecademy所做的事情是一样的,但不是live?您不需要保存到.JS文件中 您需要将JS发布到服务器,然后将其呈现到下一页 i'm the next page <script> // user's code </scri

我需要在一个页面上保存用户编写的Javascript,并用于下一个页面。我的意思是,我需要获取div的内容,并以某种方式将其保存到一个.JS文件中,该文件将在下一页加载时自动运行。我有没有办法做到这一点,或者有没有其他方法可以做到这一点


基本上,Codecademy所做的事情是一样的,但不是live?

您不需要保存到.JS文件中

您需要将JS发布到服务器,然后将其呈现到下一页

i'm the next page
<script>
    // user's code
</script>
我是下一页
//用户代码

如果您只是在本地项目上工作(没有服务器端)。您可以将该值存储到localStorage

// page 1
<!DOCTYPE html>
<html>
  <body>
     <div contentEditable="true" id="i1"></div><button id="b1">open next page</button>
  </body>
  <script>
    var div = document.getElementById('i1'), text = "desired value";
        div.innerText = text;
    document.getElementById('b1').onclick = function(){
      localStorage['div value'] = div.innerText; window.open('page2.html'); window.close('page1.html');
    }
  </script>
</html>

// page 2
<!DOCTYPE html>
<html>
  <body>
    <p id="p"></p>
    <button id="b2">go back</button>
  </body>
  <script>
   p.innerText = localStorage['div value']? localStorage['div value']: "There is no value in your div";
   b2.onclick = function(){ window.open('page1.html'); window.close('page2.html'); }
  </script>
</html>
//第1页
打开下一页
var div=document.getElementById('i1'),text=“所需值”;
div.innerText=文本;
document.getElementById('b1')。onclick=function(){
localStorage['div value']=div.innerText;window.open('page2.html');window.close('page1.html');
}
//第2页

回去 p、 innerText=localStorage['div value']?localStorage['div value']:“您的div中没有值”; b2.onclick=function(){window.open('page1.html');window.close('page2.html');}
如果您准备更改架构,我有一个问题作为您的答案。您尝试过单页JS应用程序吗?

有一种方法可以做到这一点,但这是应用程序中的一个巨大安全漏洞。你到底为什么要这么做?答案是将div数据存储在localStorage中,并在第二页的该值上使用
eval()
。但强烈建议不要这样做!这样做的风险到底是什么?我意识到有人可能会在下一页添加不合适的图片,但JS完全是客户端的?他们不能做任何破坏性的事情,是吗?你认为病毒是如何在网络上传播的?用户同意下载并安装可执行程序。或者,黑客利用浏览器中的安全漏洞访问您的整个文件系统,从而将您的PC变成黑客控制下的“机器人”。这就是为什么你一直需要更新你的浏览器,因为黑客们一直在寻找漏洞。我原计划在用户运行代码后立即删除代码,但我现在使用下面的Nicks答案。我该如何将其发布到服务器上?如果有什么意义的话,我用WAMP。也许你可以像Scott Marcus说的那样,保存到localStorage和
eval()
我可以用PHP来实现,不是吗?这会简单得多,因为我几乎没有使用服务器的经验!你认为哪一个更容易,就这么做吧。眼睛。。。好的,干杯。用户不会自己写JS,但是会为他们创建JS并将其.append'添加到div中。那么,我可以在第一次存储数据时使用.innerHTML代替.value吗?因为不会有欢呼声,所以工作非常完美。我所要做的就是给标签一个“p”ID,它就成功了!这将只显示“b”页上的代码,而不是运行它。正如我所说的,只有一种方法可以做到这一点,而且永远不应该这样做——eval(),它可以正常运行代码。只需将“p”ID赋予脚本标记即可。它会运行的。