- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试向模式中的输入添加一个事件监听器,以便在选择输入(触发焦点事件)时更改正文的高度和溢出属性。
我正在使用 getElementsByTagName 获取模态中所有输入的数组,然后使用 for 循环将监听器添加到所有输入。我知道这些监听器已正确附加,因为当我选择不同的输入时,会触发 console.log 语句。
奇怪的是,console.log 语句打印出“100%”,但如果我将该命令复制并粘贴到实际的控制台中,它会返回一个空字符串。
当我检查它们时,在我关注输入之前或之后, body 的高度和溢出属性都没有改变。但是,如果我将这些样式声明复制到控制台中,它们会立即生效,然后 document.getElementsByTagName('BODY')[0]['style'][attribute] 返回 100% 或 '隐藏'按照我填写的任何属性。
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++){
inputs[i].addEventListener('focus', function(){
document.getElementsByTagName('BODY')[0]['style']['height'] = '100%';
document.getElementsByTagName('BODY')[0]['style']['overflow'] = 'hidden';
console.log(document.getElementsByTagName('BODY')[0]['style']['height'])
})
}
由于我的命令在复制/粘贴到控制台时有效,所以我确信没有拼写或语法错误。最奇怪的部分是,当我选择输入时,我期望的 console.log 语句会触发,但实际上没有任何效果发生。我觉得这是某种范围界定问题,但我不确定为什么我的 js 没有按照我的预期进行。
编辑:在做了更多测试之后,我意识到呃,我的模式是一个 iframe,所以我选择的 body 标签是模式的主体而不是更大的外页。
这很好奇,因为我认为既然页面上有两个正文,运行 document.getElementsByTagName('body') 将返回一个数组,而不仅仅是它遇到的第一个正文。
所以我认为在这一点上,问题变成了“我如何选择 iframe/modal 外部的主体?”
最佳答案
所以我的问题的根本原因是我在其中应用我的事件监听器的模式是一个 iframe,因此它有自己的 body 标签。因此,我试图应用于包含模态的更大主体的属性没有生效,而是被分配给了 iframe 的主体。
为了解决这个问题,我需要做的就是将我的属性声明更改为
parent.document.getElementsByTagName('BODY')[0]['style']['height'] = '100%';;
parent.document.getElementsByTagName('BODY')[0]['style']['overflow'] = 'hidden';
在iframe中,window.parent指的是父文档的全局对象,而不是文档对象本身。
关于javascript - 使用 getElementsByTagName 的 CSS 样式未生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405915/
其他一切都生效但权限没有改变,我错过了什么吗? FROM joomla:3.9-php7.2-apache RUN apt-get update \ && apt-get install -y apt
我试图在我的 .htaccess 文件中指定 SSLCipherSuite,但更改似乎没有生效。我在共享主机帐户上运行,因此只能访问 .htaccess,而不能访问服务器/虚拟主机配置文件。 Apac
通过 Mailchimp 编写电子邮件模板,同时我已经让它适用于每个基于 HTML 的电子邮件客户端。 Outlook 的基于 Microsoft Word 的电子邮件客户端出现了一些问题。我关注了M
我第一次尝试创建子主题,使用二十十主题作为模板(我知道它现在有点旧,但我正在学习的教程使用它。)我的教程做的第一件事是更改主题中主要元素的背景颜色,以突出显示 DIV 所在的位置。我是这样关注的: #
我在让 Google map 样式在我的 Android 上的 Flutter 应用程序中工作时遇到问题。我正在使用 google_maps_flutter 插件 version 0.5.30。我从
在我的 WPF UserControl 中我有这个资源,请观察 Xml 示例中的注释。
当我运行线程检查工具 helgrind (valgrind toolsuite) 时,我在 glib 库中看到了很多错误。我想压制那些。 抑制文件是一种选择。但我发现:How to use helgr
我有下面的代码,我用它来创建一个 asp.net 菜单。我已将 CssClasses 分配给每个动态元素并创建了特定的类。但是,dynamicHoverStyle 类没有生效。有谁知道为什么会这样?
在Django文档的这一节中,它说明了通过url conf传递reDirect_field_name,如下所示。URL(r‘^ACCOUNTS/LOGIN/$’,‘django.contri.auth
我是一名优秀的程序员,十分优秀!