我有一个不寻常的问题。如果我为我的文本区域使用 name="adBody"和 id="adBody",它不会出现。
如果我改为使用 id="adBoty",那么我的文本区域显示正常。
这是代码(顺便说一句,$adText 在此文件顶部的 php 中设置为 =""):
<textarea rows="7" cols="68" name="adBody" id="adBody" ><?php echo $adText ?></textarea>
我接下来尝试了这个,但 textarea 仍然不会出现(更改了名称,摆脱了 php):
<textarea rows="7" cols="68" name="thisIsATextArea" id="adBody" ></textarea>
我试过了,文本区域显示正常:
<textarea rows="7" cols="68" name="adBody" id="theEditText" ><?php echo $adText ?></textarea>
这个 name="adBody"和 id="adBody"的文本区域自从我 3 个月前编写以来一直运行良好。今天,在第一次将此代码上传到我们的登台服务器后,我注意到文本区域不知何故不知何故消失了。在我们的登台服务器上首次部署后,我正在测试(公认的小)项目中的每个功能,那时我注意到缺少文本区域。
我的第一个想法:“我一定有这样一行代码:”
document.getElementById('adBody').style.display = "none";
不。我在整个源代码树上使用 Netbeans 的“查找”搜索了整个代码库(无论如何,我们的项目中还没有太多代码)。
在整个源代码的任何地方,没有一行代码隐藏任何 ID 为“adBody”的 DOM 元素。事实上,没有像上面那样隐藏任何 DOM 元素的代码行。
我确定这一定是一个奇怪的内存踩踏问题或命名空间问题或某些已损坏的问题。我已经好几个月没有碰过文本区域了,一切都很好。 这就是我最初写的方式,它运行良好 3 个月,直到我今天注意到它。
<textarea rows="7" cols="68" name="adBody" id="adBody" ><?php echo $adText ?></textarea>
我知道建议解决方案并不容易,但如果有人看到像这样的奇怪副作用并发现真正的潜在问题,我会洗耳恭听。
即使我的 textarea,只要我不使用 id="adBody"作为它的 ID,现在看起来很好,我怀疑有一个更大的潜在问题导致了这个问题,也许是一个杂散的 DOCTYPE 问题,但是我找不到它。
最佳答案
这通常是由广告拦截器插件引起的,例如 adblock plus、adblocker 等。
像 adblock plus 这样的插件确实描述了是什么制作了一个广告“acceptable”,但不能保证它会通过过滤器
This question似乎有一个公认的答案,可以帮助检测是否存在广告拦截器,但不确定它是否有效。
关于javascript - textarea名称,id相同——,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18971940/