动态替换javascript function / div中的单词

时间:2013-11-25 16:37:08

标签: javascript html css

这令我感到困惑

我有两个表单输入,一个是文本,一个是自动回复代码(javacript或“原始HTML”)

用户单击链接转到javascript函数以预览结果的样子。这是一个在一侧有<textarea>区域的表格(因此它很容易getElementById并将消息打印到框中。但是,另一方面证明更具“挑战性”

这是代码。

  function preview(per){
if (per == 'sm'){
var txt=document.admin.personal.value;
var bot=document.admin.ad_bot_data.value;
}
else{
var txt=document.admin['personal_'+per].value;
var bot=document.admin['bot_data_'+per].value;
}
    if (txt == ''){
    alert('You have not entered any personal message into responder '+per+'\\nso there is nothing to display\\n\\nPlease corrrect');
    return false;
    }
    if (bot == ''){
    alert('You have not entered any autoresponder code into responder '+per+'\\nso there is nothing to display\\n\\nPlease corrrect');
    return false;
    }
document.getElementById('show_personal').value=txt;
//document.getElementById('preview').innerHTML.replace("%bot%",bot);
document.getElementById('0').style.visibility="visible";
document.getElementById('1').style.visibility="visible";
}   
</script>
</head>

<body onload="HidePop('0');HidePop('1');">
<div style=position:fixed;width:100%;top:20px;text-align:center;pointer-events:none;" id="preview">
<table class="close" cellpadding="8" cellspacing="0" align="center" id="0">
<tr><td colspan="2" align="right"><a href="javascript:void[0];" onclick="HidePop('0');HidePop(1);"><font class="main">CLOSE</font></a></td></tr>
</table>
<table class="choice" cellpadding="8" cellspacing="0" align="center" id="1">
<tr><td colspan="2" valign="top" bgcolor="#ffffff">
<font class="head">Wait ...  before you visit the other site</font><br>
<font class="main">we would like to offer you the chance to subscribe to <i>OUR</i> newsletter.</font>
</td></tr>
<tr><td width="60%">
<font class="main">Here are a few more details:</font>
<br><br>
<center>
<textarea rows="23" cols="45" id="show_personal" class="personal" disabled></textarea>
</center>
</td>
<td>
%bot%
<br><img src="http://www.cristofayre.com/images/my_site/poppa/no.gif" border="0">
</td></tr>
</table>
</body>
</html>
</div>

(有五个响应者“bot_data_”和五个个人消息区域“personal_” 对于用户而言,一套给我(“sm”)。文本消息在textarea中以“show_personal”进入后面的脚本。 “bot部分可以是纯HTML,也可以是javascript代码。因此,没有'容器'我可以将其放入。我想要使用innerHTML进行搜索和替换,并在脚本中为div容器命名。可以看到它在下面评论。

这可能是一个简单的语法错误,或者我可能需要一些其他代码。我等待你的评论

**常规称为“HidePop”是使用"visibility:hidden"删除弹出预览的另一个功能

++++++对Tremor +++++

这是我试过的代码。有什么想法吗?:

document.getElementById('test').value='12345';

<td><p id="test"></p>
<td><div id="test"></div>
<td><span id="test"></span>

屏幕上没有显示任何内容。我也尝试了以下内容:

<td><p id="test">%bot%</p>
<td><div id="test">%bot%</div>
<td><span id="test">%bot%</span>

var t=document.getElementById['test'].value;
alert(t);

然后回来undefined

1 个答案:

答案 0 :(得分:0)

感谢“震颤”,他指出了我正确的方向。我将%bot%放在上面的代码中,然后尝试替换它,我应该做的是放置一对&lt; div&gt;&lt; / div&gt;标签在这里。

我也“半正确”,因为它需要以某种形式使用“innerHTML”。我应该做的不是尝试使用'value'设置元素(使用textarea和输入类型)我应该让它直接放置innerHTML。

以下是修订后的代码:

//document.getElementById('preview').innerHTML.replace("%bot%",bot);
should actually have been
document.getElementById('bot_data').innerHTML=bot;

and the section in table, should have been:
%bot% (incorrect)
<td><div id="bot_data"></div>
<br><img src ...

很高兴分类。

在回答“安德鲁”时,我注意到你的过时代码已经过时了,但是我用这个过时的HTML写了大约25个PERL / HTML脚本 - 总共大约2.5GB - 我希望HTML5会不要在一夜之间替换HTML x,并且代码可以使用几年。我不想重新编码那么多!! (注意:我会查看HTML5以查看主要更改)