草庐IT

javascript - 加载页面后如何在Angular 4中获取(DOM)元素的宽度

我正在Angular4中寻找一个解决方案来获取DOM元素的宽度而不采取任何操作(单击或调整窗口大小),就在页面加载之后但在我开始绘制svg之前。我在here中发现了类似的案例但它对我不起作用。我得到同样的错误:ERRORTypeError:Cannotreadproperty'nativeElement'ofundefined我需要获取div容器的宽度来设置我在其中绘制的svg的veiwbox。这是模板:和在这种情况下需要的东西的TS文件:import{Component,Input,OnInit,ViewEncapsulation,AfterViewInit,ViewChild,El

javascript - IE7 默认表单方法是 "GET"。我如何判断它是用户输入的还是默认的?

如果用户创建了一个没有method属性的表单,似乎大多数浏览器都会在表单提交时处理这个问题。因此,在DOM准备好后检查表单元素时,您可以看到表单元素对象没有“方法”属性。然而,IE7显然在所有没有方法值的表单上设置了默认方法值“GET”。我不想争论GET还是POST是最明智的默认设置,我只是想找到一种方法让POST成为所有浏览器的默认表单方法。我的问题是我无法判断用户是否为表单方法输入了“GET”值,或者IE是否将该值作为默认值注入(inject)。如果表单没有method属性,很明显用户没有指定,所以我可以安全地将其默认为POST。但是,如果我看到表单方法的GET值,我无法判断用户是

javascript - 如何使用 html 标记包装来自 window.getSelection().getRangeAt(0) 的文本选择?

如何从window.getSelection().getRangeAt(0)中进行选择并用HTML标记(如“span”或“mark”)包围它?我更喜欢直接的javascript或jQuery解决方案。我能够使用警报输出选定的文本,但还没有弄清楚如何用额外的标记包围它。我已经看到很多在选择上运行execCommand的例子,但这不是我要找的。在jsfiddle查看我的工作示例有什么想法吗?谢谢 最佳答案 如果所选文本全部包含在单个文本节点中,您可以使用surroundContents()范围的方法。但是,这在一般情况下不起作用。要做的

javascript - 触摸屏和 Javascript DOM 鼠标按下事件

我有一个使用触摸屏的javascript网络应用程序,浏览器是基于webkit的。我遇到了这个问题:addEventListener("mousedown",function(event){console.log('downfired');event.target.classList.add('down');},true);当使用鼠标时,目标元素类在按住鼠标时立即添加,但当使用触摸屏时,当手指按住元素时目标元素类不会改变。然而,奇怪的是,控制台日志消息是在鼠标单击和ts按下的按下事件上发送的。关于如何解决这个问题有什么建议吗??谢谢编辑我添加了touchstart事件监听器,但它不会在

javascript - CSS 样式可见性未按预期运行

我有一个带有基本选项卡控件的html页面。我使用javascript来显示和隐藏选项卡和选项卡内容div。我的问题是,如果我将其中一个选项卡内容div中某个元素的可见性更改为“隐藏”,然后再更改为“可见”,该元素似乎忘记或丢失了其父div容器并保持可见,无论其原始内容如何parent可见度。为了说明,请看下面的例子:functionhideTab(){document.getElementById('tab1').style.visibility='hidden'}functionshowTab(){document.getElementById('tab1').style.visib

javascript - 通过数组循环创建 li 并以列表形式显示到 HTML

我正在学习javaScript,我想循环数组并以列表形式显示到HTML。我该怎么做?数组:vararray=['幻灯片1','幻灯片2','幻灯片3','幻灯片4','幻灯片5','幻灯片6','幻灯片7','幻灯片8','幻灯片9'];JavaScript:functionlistItem(item){for(vari=0;i 最佳答案 虽然所有提供的答案都有效并且很好-它们都遇到相同的问题-因为它们在每次迭代时将元素附加到DOM。对于一个小列表,这将不是问题,但如果您要处理列表中所需的大量元素-不断操作hteDOM将产生性能成本

教授 javascript 语言的 Javascript 书,而不是 dom

我是一个非常优秀的程序员(当然,仅IMO。了解Python、Java。尝试过Lisp、Ruby、Haskell)。我也知道如何合理地使用Jquery,所以我知道Dom操作。我想要一本关于教授Javascript语言的书籍的推荐。我的标准是,1.节奏快,适合懂编程的程序员。不要告诉我什么是循环。2.教授语言而不是Dom操作。3.首选电子书。非免费没问题。 最佳答案 JavaScript:好的部分。 关于教授javascript语言的Javascript书,而不是dom,我们在StackOv

javascript - 反跨域策略有什么意义?

为什么HTMLDOM和/或Javascript的创建者决定禁止跨域请求?我可以看到禁止它的一些非常小的安全好处,但从长远来看,它似乎是在尝试降低Javascript注入(inject)攻击的威力。无论如何,这对于JSONP来说都是没有意义的,它只是意味着javascript代码更难制作,你必须有服务器端合作(尽管它可能是你自己的服务器) 最佳答案 实际的跨域问题是巨大的。假设SuperBank.com内部向http://www.superbank.com/transfer?amount=100&to=123456发送了一个请求,将1

javascript - 在 IE 上开发的 Javascript 在 Firefox 上失败的典型原因是什么?

我经常遇到与thispost中描述的相反的问题.也就是说,我在专为InternetExplorer设计的遗留应用程序中有代码,我需要让它在Firefox中运行。例如,我最近在开发一个大量使用手动模拟点击事件的应用程序,如下所示:select.options[0].click();...这完全破坏了Firefox中的应用程序。但是您不会在另一个问题的答案中找到该信息,因为如果您的应用首先针对Firefox,您甚至都不会尝试这样做。在迁移到现代浏览器时,更新仅限IE的遗留应用程序的开发人员还应该注意哪些其他事项? 最佳答案 这是我之前的

javascript - 如何监听自定义事件定义的 Web 组件

我有一个自定义元素my-checkbox,它包含一个复选框、标签、样式等。当该复选框被切换时,我定义了一个名为check的CustomEvent构造函数,像这样:constructor(){super();this._shadowRoot=this.attachShadow({mode:'open'});this.checkEvent=newCustomEvent("check",{bubbles:true,cancelable:false,});}我在复选框被切换时发送该事件:toggleCheckbox(){this.dispatchEvent(this.checkEvent);c