为了账号安全,请及时绑定邮箱和手机立即绑定

进阶:利用JS innerHTML替换的dede后台代码执行不了,入行浅,求大神指点。

进阶:利用JS innerHTML替换的dede后台代码执行不了,入行浅,求大神指点。

慕粉4203582 2016-11-09 09:34:08
JS的替换代码段在下面回复中不再复制。稍有改变的是里面替换的字符改成了代码。span[i].innerHTML="[field:xingming/]";改变innerHTML后放入的以后,dede程序不再执行替换后的代码了,原因我猜是dede已经解析执行过一次了。现在的问题是,有没有什么方法,能让DEDE程序再解析一次,或者在解析前就执行这段JS。而让替换后的innerHTML="[field:xingming/]"里面的代码能够执行。
查看完整描述

2 回答

?
李晓健

TA贡献1036条经验 获得超461个赞

说实话,真的没有看明白你在说什么。多个问题可以拆开一个一个的问,你说的后台也不知道在哪里体现的。


var span=document.getElementsByTagName('span');   是一个类似数组的东西,并不是真正的数组,它和数组确实没有innerHTM属性;

但是 :span[this.index] 是类数组中的一个元素,也就是一个html的标签,它是有innerHTML属性的。所以你这里没有问题。

查看完整回答
1 反对 回复 2016-11-09
?
KevenHuang

TA贡献280条经验 获得超233个赞

说真的我也看不懂这段代码究竟要表达什么意思?要做什么样的效果。

查看完整回答
反对 回复 2016-11-09
  • 慕粉4203582
    慕粉4203582
    你把代码放到执行器里面试一下不就知道了。。。
?
慕粉4203582

TA贡献6条经验 获得超1个赞

呵呵,自己实现了第一段代码。

<!DOCTYPE html>

<html>

<script>

window.onload=function ()

{

var biaoji=document.getElementsByName('biaoji');

var span=document.getElementsByTagName('span');

var i;

for(i=0;i<biaoji.length;i++)

  {

   biaoji.index=i;

   if(parseInt(biaoji[i].innerHTML)==1)

    {

        span[i].innerHTML="Hello World";

      }

   }

  }

</script>

<body>

<div name="biaoji">1</div>

<div name="biaoji">1</div>

<div name="biaoji">1</div>

<span>我爱你</span>

<span>我爱你1</span>

<span>我爱你2</span>

</body>

</html>


查看完整回答
反对 回复 2016-11-09
  • 2 回答
  • 0 关注
  • 2260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信