0

我有一个页面,用户可以在其中创建自己的脚本来修改服务器上的文本(不要担心访问权限仅限于少数用户)。所以用户只能填写三个字段,一个是规则的名称,另一个是要替换的表达式,最后一个是替换它的内容:

<label id="name">Name: </label> <input type="text" name="ruleName" size="50" id="ruleName"></input> </br>
<label id="input">Replace: </label> <input type="text" size="50" name="inputStep1" id="inputStep1"></input> </br>
<label id="output">By:</label> <input type="text" size="50" id="outputStep1"></input></br>

之后,规则通过php帖子存储在服务器上的一个文件中(我会省去你这个命令的不必要的细节......)。然后规则以带有复选框的形式列出,我希望在单击复选框时应用规则。

我唯一能想到的是通过脚本标签导入脚本文件,但仅通过导入它不会运行内部脚本。

我怎么做?

谢谢

4

1 回答 1

0

如果我理解你是正确的,你将不得不创建一个内容像这样的脚本文件

在服务器上生成脚本:

// i would approch this totally differt, because i would not let user generate script on the server, but to answer the question ...
function executeRule(){ // name of the function is probably the Rulename and must be unique
  document.getElementyId("withRules").innHTML = document.getElementyId("withRules").innHTML.replace('[userenteredvalue1]','[userenteredvalue2]');
}

//这段代码应该只在选择单选按钮时执行

而不是我会为每个 html - script - tag 添加脚本

<script src="/generated_user_script.js"></script> <!-- a line per generated script -->

而不是在选择(onchange/onclick事件,当checked属性设置时)我会调用该函数,快速脏。:) 如果你有很多规则,你需要唯一的名字,这样它们就不会覆盖自己等等。

这表示另一种方法是不创建 javascript 代码会更好。如果它只是替换功能,可能你可以存储输入和输出值左右。

于 2013-07-11T07:17:00.497 回答