【问题标题】:Cannot hide a script inside a div or a span in IE无法在 IE 中的 div 或 span 中隐藏脚本
【发布时间】:2011-08-08 23:57:48
【问题描述】:

我有一个 span/div 标签,我试图在其中隐藏一个脚本

var wr2 = '<span id="span_id" style="display:none;position:relative"><SCRIPT LANGUAGE="JavaScript" SRC="http://www.some_server.com?a=3&d=5"></SCRIPT></span>';

然后在我的脚本中使用(在页面顶部编写代码):

document.write(wr2);

无论我做什么,它总是显示脚本,即使它被隐藏的 div 包裹。 我想在另一个函数上控制它,但默认情况下隐藏它。

  1. 我不能使用 jQuery。
  2. Chrome 和 Firefox 可以正常使用此代码

【问题讨论】:

  • 脚本不是“可见的”。他们执行并做某事。如果你想隐藏他们对页面所做的事情,那么你需要弄清楚那是什么。
  • 你为什么要有条件地隐藏你的脚本?你需要重新考虑!
  • 我无法移动脚本,实际上我不知道它放在哪里
  • 我的客户希望根据他从我的服务器获得的参数有条件地隐藏/显示脚本。该脚本可以显示在页面源中,但我应该能够阻止其显示图像,例如

标签: javascript html internet-explorer scripting


【解决方案1】:

如果您将脚本元素放在 html 页面的部分中,它们将不会显示在页面上,但如果用户查看页面源,它​​们将可见。此外,默认情况下不显示标签。无需将其放入隐藏标签中。

这是一个简单的JS Fiddle 来演示这一点。

【讨论】:

  • 我不需要在查看页面源代码时隐藏它,只是直到某个点才显示它后面的图像/肉体
【解决方案2】:

正如其他人所指出的,隐藏脚本似乎是一种气味。

但是,如果您说的是 script 标记在您执行 document.write 时显示为 HTML,请使用:

document.write('<scr' + 'ipt src="http://www.some_server.com?a=3&d=5" type="text/javascript">' + '</scr' + 'ipt>');  

您将不再需要 span 来隐藏它。

【讨论】:

  • 我不需要在查看页面源代码时隐藏它,只是直到某个点才显示它后面的图像/肉体
  • 将 document.write 与脚本一起使用将首先显示脚本,这是我想避免的。
  • 你试过了吗?我一直在使用它,没有这样的问题。另外,图像/肉体是什么意思?我从未见过任何脚本标记在页面上呈现任何存根。
  • 我确实试过了。等待整个页面加载然后使用 document.write 看看你得到了什么 - 当你只看到最后一个 document.write 时页面被完全删除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
相关资源
最近更新 更多