草庐IT

安全局

全部标签

javascript - JS 恢复默认/全局函数

这是一个假设性的问题,它确实没有实际用途,但是......假设您要执行以下操作:document.open=null;如何将document.open恢复到其原始功能,这可能吗(没有用户创建的临时存储)?document.open是否以鲜为人知的名称存储在另一个位置?谢谢!:) 最佳答案 覆盖document.open直接在document对象上创建一个名为open的变量/函数。但是,原始函数不在对象本身上,而是在其原型(prototype)上-因此您确实可以恢复它。open函数来自HTMLDocument.prototype,因此

javascript - 为什么 'event' 在 Chrome 中全局可用但在 Firefox 中不可用?

在回答另一个问题时,出现了一个奇怪的错误,该错误与event对象在匿名函数中可用而不被传入有关。在Chrome中,下面的工作正常,但Firefox抛出一个错误。$(document).ready(function(){$("#uspsSideboxTrackingClose").click(function(){event.preventDefault();console.log(event);});});Chrome:火狐:ReferenceError:eventisnotdefined众所周知$("#uspsSideboxTrackingClose").click(function

javascript - 为什么从 angularjs.TypeScript.DefinitelyTyped 中删除全局 'angular' 变量?

从angularjs.TypeScript.DefinitelyTyped升级2.1.6到3.1.2删除了我用于模块声明文件的静态angular变量的可访问性。下面出现一个错误,表示符号angular无法正确解析。angular.module("someModule")....Resharper提供了从外部模块导入变量的选项,但这不起作用。在早期版本中公开全局angular变量是否是一个错误?它是否不打算按照我的项目使用它的方式使用? 最佳答案 这是Resharper9.0的一个错误。该修复计划用于9.1版本。您现在可以执行以下两项

javascript - 是否可以在 Angular 2 中动态更改全局样式表?

是否可以动态更改全局样式表?编辑:目的是让用户选择他喜欢的样式。在Angular1中,我能够将Controller包裹在head标签周围并在其中使用绑定(bind)。示例如下(简化代码):index.htmlTitle...应用程序Controllerapp.controller('AppController',['$scope',function($scope){$scope.current=dynamicValue;}]);这在Angular2中可行吗? 最佳答案 我最终使用了Igor提到的DOCUMENTtokenhere.从

javascript - 全局 jQuery `.click()`

我想在单击页面上的任何内容时触发一个事件,然后正常处理。例如,将触发点击,我会查看目标是否匹配某些内容,如果匹配则发出警报,然后让点击事件继续(无preventDefault())。 最佳答案 $(document).click(function(e){//e.targetistheelementwhichhasbeenclicked.});这将处理所有点击事件,除非处理程序阻止事件冒泡(通过调用event对象的stopPropagation()方法)。 关于javascript-全局j

javascript - 没有声明全局变量递归不起作用

为什么版本A有效而版本B无效?如何在不在函数外部声明全局变量的情况下使版本B工作(这是不好的做法)?我不清楚为什么我不能在函数本身内部声明计数。一个)varcount=0;varcontainsFiveOrMoreDivs=function(domElement){if(domElement&&domElement.tagName==="DIV"){count++;}//basecase:if(count>=5){returntrue;}else{if(domElement.hasChildNodes()){varchildren=domElement.childNodes;for(v

javascript "use strict"和尼克的查找全局函数

所以我看到了一个函数,坦率地说,它的简单性非常漂亮,因为它允许您在匿名函数中找到全局对象(这取决于当时的环境,可能不是window);但是,当您抛出javascripts的“使用严格”时;由于对关键字“this”的评估发生变化,模式崩溃了。有几种方法可以做到这一点?(function(){varwin=function(){return(function(){returnthis;}());};//winnowpointstotheglobalobjectnomatterwhereitiscalled.}());现在,如果在“usestrict”的上下文中调用这些,我们将失去所描述的功

javascript - 全局变量只是 `window` 对象的属性吗?

每当我在浏览器上看到一个网站时,一个javascript实例正在运行。我可以在控制台(DevTools)中声明一个全局变量;vara=1234567890;此变量已在全局范围内声明,这样我就可以像这样获取变量的值;>a1234567890不过,我也可以这样做;>window.a1234567890我是否正确理解window对象是包含浏览器网站实例中所有全局变量的对象?如果是这样,窗口对象属于什么范围?这让我有点困惑;>windowWindow{top:Window,window:Window,location:Location,external:,...}>window.windowW

javascript - 使用 eval() 在 JavaScript 中执行用户输入的安全风险

我计划为我的学生制作一个快速网页,教他们JavaScript编程。在这个页面上,我想给他们一个文本框并允许他们运行JavaScript,以便他们可以看到工作中语言的动态特性。但是,我很清楚在用户输入上使用eval()通常是一个非常糟糕的主意。发布这样的页面会带来什么样的安全风险?我应该采取哪些步骤来降低这些风险? 最佳答案 您面临的安全风险是,您从用户那里获取输入并在您网站上的脚本上下文中运行它。想象一下,如果您是一个恶意破解者,无论出于何种原因都可以完全访问修改JavaScript在网站上运行。您可以执行在您的域上运行的JavaS

javascript - 使用 JavaScript 的 replace() 方法对变量进行全局切换

在我无法弄清楚它如何单独工作之后,我无法举出任何例子。我想要做的就是获取一个已分配给一个值的字符串,并将其用作所有匹配项的替换匹配字符串。varreplacement='i';vartext='tieiam';text=text.replace(replacement,'');//'teiam'text=text.replace(/tieiam/g,'');//'team'如何一起使用它们? 最佳答案 你想要的是使用RegExp对象:text=text.replace(newRegExp(replacement,'g'),'');S