首页 \ 问答 \ 检查浏览器是否支持`.textContent`的最佳方法?(Best way to check if browser supports `.textContent`?)

检查浏览器是否支持`.textContent`的最佳方法?(Best way to check if browser supports `.textContent`?)

我想检查浏览器是否支持.textContent

我曾想过这些选项:

  1. if( document.body.textContent ) { }
  2. if( document.createElement('div').textContent !== void(0) ) { }

当然,第一个更简单,但我看到的问题是,也许浏览器计算所有的字符串,如果网站很大,可能会很慢。

那么,我应该选择哪一个? 还是有更好的选择?

编辑 :我创建了一个jsperf


I want to check if the browser supports .textContent

I have thought these options:

  1. if( document.body.textContent ) { }
  2. if( document.createElement('div').textContent !== void(0) ) { }

Of course, the first one is simpler, but the problem I see is that maybe the browser calculates all the string, which can be slow if the website is huge.

Then, which one should I choose? Or is there a better option?

Edit: I have created a jsperf


原文:https://stackoverflow.com/questions/18006274
更新时间:2019-07-04 03:12

最满意答案

随着...

'textContent' in document.body

...表达式您只需检查document.body对象中的属性(textContent)存在性,而不实际检查其值。

是的,在IE8中是false的。


With...

'textContent' in document.body

... expression you'll just check a property (textContent) existence in document.body object, without actually checking its value.

And yes, it is false in IE8.

2013-08-01

相关问答

更多

如何可靠地确定浏览器是否支持鼠标悬停事件?(How can I reliably determine if a browser supports mouse-over events?)

您可以做出与检测键盘或触摸输入的解决方案相反的结果。 只需等待一个实际的触摸事件或鼠标移动事件,并根据此决定。 如果您检查事件处理程序的存在,则即使浏览器当前没有在支持该事件的硬件上运行,浏览器也可能会指出它有事件,因此唯一可靠的方法是等待并查看哪些实际事件触发。 You could do the opposite of the solution for detecting keyboard or touch input. Just wait for an actual touch event o ...

检测浏览器是否支持jQueryMobile(Detect if browser supports jQueryMobile)

文档: http://jquerymobile.com/demos/1.0a4.1/#docs/about/platforms.html http://jquerymobile.com/gbs/ $ .mobile.gradeA() Docs: http://jquerymobile.com/demos/1.0a4.1/#docs/about/platforms.html http://jquerymobile.com/gbs/ $.mobile.gradeA()

检查Android默认浏览器或任何移动浏览器是否有效(Check if Android default browser or any mobile browser if active)

我想知道如何检查Android默认浏览器或任何移动浏览器是否已经运行。 您可以使用ActivityManager检查正在运行的任务。 例: ActivityManager actvityManager = (ActivityManager) youContext.getSystemService( ACTIVITY_SERVICE ); List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses(

在Dart中管理浏览器历史记录(Managing browser history in Dart)

查看路线库。 angular.dart也有它自己的路由机制,但它是一个更大的框架的一部分,所以除非你打算使用其余部分,我会推荐独立的路由库。 如果您想构建自己的解决方案,可以查看route的client.dart以获取灵感。 支持两种历史导航方法: 您使用的页面片段方法。 将窗口位置重新分配给新的页面片段: window.location.assign(newPathWithPageFragment) 。 这样做会自动将新项添加到浏览器历史记录中(然后启用后退按钮)。 较新的History AP

使用JavaScript,在HTML textContent属性中插入换行符(特定于IE)(Using JavaScript, insert a line break into a HTML textContent attribute (IE specific))

function createPathContent(svgID, popupText, pathDirections) { var path = document.createElementNS("http://www.w3.org/2000/svg","path"); path.setAttribute("d",pathDirections); var popup = document.createElementNS("http://w

在Node.js和浏览器上拦截(模拟)http请求(Intercept (mock) http requests on Node.js and browser)

我看着他们如何进行测试。 他们构建了一个模拟Express服务器,以他们想要的方式响应并检查匹配。 但是这对浏览器有何影响? 事实证明他们正在使用Zuul 。 Zuul是一个创建ad-hoc服务器以在浏览器中运行测试的工具。 它支持qunit,mocha,tape和一些其他测试框架。 它还接受在测试期间运行的模拟服务器。 它在Sauce Labs上运行测试,它们有一个免费的开源项目计划。 这不是我预期的解决方案,但它是一个解决方案。 您可以查看我的项目以查看正确的代码(在此答案时间内最后一次提交

不同的浏览器和设备上的CSS,响应(different css on different browsers and devices, responsiveness)

这是实施响应能力的正确方式吗? 有一个更好的方法吗? 不能说这是否是最好的方法,但这是我的建议:不要做浏览器检测。 这是一个猫捉老鼠的游戏,你永远不会看到它的结局。 早在IE成为流行浏览器(eww)的时代,我们必须通过浏览器检测来应用自定义的“黑客攻击”,以确保网站在所有主流浏览器(包括Internet Explorer本身)上的显示和行为大致相同。 然而,现在大多数主流浏览器都遵循相同的Web标准,所以大多数CSS规则/属性在每一种浏览器中的表现都几乎相同,所以浏览器检测不再是必需的。 我们现

相关文章

更多

最新问答

更多
  • 使用javascript为用户延迟加载内容的更好方法是什么?(What is a better way to lazy load content for users with javascript?)
  • 如何修复无法将类型的值...转换为预期的参数类型inout _(How to fix Cannot convert value of type … to expected argument type inout _)
  • 从哪里开始解析JSON?(Where to start with parsing JSON?)
  • Mail.php不适用于.htaccess(Mail.php doesn't work with .htaccess)
  • 使用htaccess设置子域(Setting subdomains using htaccess)
  • mod_pagespeed和java应用服务器(mod_pagespeed and java app servers)
  • Win32:如何崩溃?(Win32: How to crash?)
  • FFmpeg中RGB到YUV转换的错误(Error in RGB to YUV conversion in FFmpeg)
  • 如何在Android中首次打开应用时创建弹出窗口?(How to create pop-up when first open app in Android?)
  • 通过动态传递表名和列名来反转COLUMN DATA(Reversing COLUMN DATA by dynamically passing table name and Column Name)
  • 如何计算C#中ICollection中有多少元素?(How can I count how many elements are in an ICollection in C#)
  • 从pg-promise查询中获得结果(get result out of a pg-promise query)
  • 使用管理器注册一个类,然后调用子类重写方法(Register a class with a manager, then call the sub classes overridden methods)
  • 传递&在查询字符串中(Passing & in query string)
  • 谷歌浏览器打印预览不会第一次加载页面(google chrome print preview does not load the page the first time)
  • FsLexYacc:Tests / MiniProject“在.fsproj中导入错误”(FsLexYacc : Tests/MiniProject “incorrect Import in .fsproj”)
  • 创建一个模型方法,计算用户的帖子并在rspec(Rails)中测试?(Create a model method that counts a user's posts and test in rspec (Rails)?)
  • 记录线程的奇怪行为(Strange behaviour of logging thread)
  • 移动数组中的索引(Moving indices in an array)
  • MVC 5 - > MVC 5.1迁移。(MVC 5 -> MVC 5.1 Migration. Intellisense issues)
  • 使用函数在z3中创建列表(Creating List in z3 using function)
  • 如何进行html随机重定向(How to make a html random redirect)
  • 角度js:使用角度过滤器分割日期,月份和时间(Angular js: spliting date,month and time using angular filter)
  • 将所有模块导入一个文件夹,并按其属性之一使用它们(Import all modules in one folder and use them by one of its attributes)
  • 只需要在git的当前分支上获得合并列表(Just get list of merge happened on my current branch in git)
  • React-Native导入库并在多个组件中可用(React-Native import a library and make available in multiple components)
  • 如何使用jQuery为固定(偏移)位置设置div动画?(How to animate div for a fixed (offset) position using jQuery?)
  • operator ==和vector confusion(operator== and vector confusion)
  • 如何获取所选图像映射alt值?(How to get selected image map alt value?)
  • 在角度,如何使用取消用户事件的美元间隔,如页面更改?(In angular, how to use cancel an $interval on user events, like page change?)