草庐IT

原来真的没有那么多侥幸呀,踏实沉稳才不会让你吃亏

全部标签

javascript - GM_setClipboard(和其他 GM 函数)在 Firefox 中给出错误,但在 Chrome/Tampermonkey 中没有给出错误?

我在Firefox中工作并尝试创建一个函数,当我按下Shift+*(Numpad)时将复制链接的文本。代码通常在ChromeTampermonkey中工作,但由于某种原因它在Firefox中什么都不做。控制台报如下错误:"ReferenceError:GM_setClipboardisnotdefined"这是我的代码:document.addEventListener("keydown",function(i){varselectLink=$('a').eq(8);//ThelinkbyindexvartargetLink=selectLink.text();//Thelinktex

没有插件的 Javascript 输入文本屏蔽

我想在不改变实际值的情况下屏蔽输入框中的文本。我不能使用任何插件。我目前正在这样做-但如您所见,问题是实际值在提交时发生了变化。我怎样才能改变显示值?$("input[name='number']").focusout(function(){varnumber=this.value.replace(/(\d{2})(\d{3})(\d{2})/,"$1-$2-$3");this.value=number;} 最佳答案 你需要两个输入两个输入应该可以完成工作。一个输入将包含屏蔽文本,另一个将是包含真实数据的隐藏输入。我处理屏蔽的方法是

javascript - 触发点击链接不会改变位置哈希

我正在开发一个Web应用程序,该应用程序在某些情况下使用onHashChange事件监听器,并且手动单击带有href="#hash"的链接效果非常好。但是,当我使用jQuery的$('a[href=#"hash"]').trigger('click')或$('a[href=#"hash"]').click()地址栏中的哈希没有改变。是我做错了什么吗?或者我应该为此目的使用其他方法?HTMLDoSomethingJS//Notworking$('a[href="#hash"]').click();//Notworking$('a[href="#hash"]').trigger('clic

javascript - 如何找到没有 html 标签的文本并用 p 元素包装它

我有以下HTML代码。我想查找并替换没有HTML标记的文本,并使用jQuery将其包装在p元素中。有没有办法实现我的目标?MytasksLoremipsumdolorsitamet,consetetursadipscingelitrLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitamet,consetetursadipscingelitr 最佳答案 为此,您需要找到子文本节点并将它们包装在中标签。为此,

javascript - 为什么 Promise 没有 get() 函数?

如果您知道Promise已经被解决,为什么不能直接调用get()并接收值呢?与将then(..)与回调函数一起使用相反。所以不要这样做:promise.then(function(value){//dosomethingwithvalue});我希望能够做的更简单:varvalue=promise.get();Java为它的CompletableFuture提供了这个我看不出为什么JavaScript不能提供相同的功能。 最佳答案 Java的get方法“如有必要,等待此future完成”,即它会阻塞当前线程。我们绝对不想在只有一个“

javascript - Promise 不会等待 for 循环完成

我有一个异步代码,我想在我的一个Nodejs脚本中同步运行,但这不会等待代码块完成并解析空对象-newPromise((resolve,reject)=>{if(object.email!==undefined){for(leti=0;i{console.log('>>isEmailUnsubscribedresultinsendemailnotification:'+result)if(!result){emailObjects.push(emailObject.EmailID)}})}}console.log('emailObjects')console.log(emailObje

javascript - Object.assign 没有正确复制

我正在使用VueJS。我有一个接收对象作为参数的方法。然后我用Object.assign()克隆这个对象。Component.vueexportdefault{//...methods:{//...activateEditMode(item){this.editItemIndex=this.travelItinerary.indexOf(item)this.editItem=Object.assign({},item)//...}}}this.roteiroCompleto[0]处的原始对象:但是当我编辑克隆对象this.itemEditado时:原始对象this.roteiroCom

javascript - 有没有办法将 map 的所有条目设置为一个值

我有一个数组,我想将其用作map的键并将每个值设置为true。除了在我的数组上使用forEach循环来设置每个条目之外,还有其他方法吗?这就是我现在的做法:constlist=[0,1,2,3];constmyMap=newMap();list.forEach(element=>myMap.set(element,true));有没有更好的办法? 最佳答案 一种更简洁、更实用的方法是将列表的map作为参数传递给map:constlist=[0,1,2,3];constmyMap=newMap(list.map(key=>[key,t

javascript - 有没有一种更简单的方法可以在不捕获的情况下进行单行尝试?

当我做这样的事情时:letresolved=null;try{resolved=require.resolve(modulePath)}catch(e){}我想知道是否有更短的语法,例如:letresolved=null;tryresolved=require.resolve(modulePath)有没有办法在不打开catchblock的情况下原谅这一行?有这样的东西,但我正在寻找更自然的东西:functiont(fn,def){letresolved=def;try{resolved=fn()}catch(e){}returnresolved;} 最佳答案

javascript - 将 WMD 编辑器的预览 HTML 与服务器端 HTML 验证对齐(例如,没有嵌入的 JavaScript 代码)

关于如何对WMD编辑器生成的Markdown进行服务器端清理以确保生成的HTML不包含恶意脚本,如下所示:但我也没有找到堵住客户端漏洞的好方法。当然,客户端验证不能替代服务器上的清理验证,因为任何人都可以假装是客户端并向您发送令人讨厌的Markdown。而且,如果您在服务器上删除HTML,攻击者将无法保存错误的HTML,这样其他人以后就无法看到它,并且他们的cookie被盗或session被错误的脚本劫持。因此,有一个有效的案例表明,在WMD预览Pane中执行无脚本规则可能也不值得。但想象一下,攻击者找到了一种将恶意Markdown放到服务器上的方法(例如,来自另一个站点的受损提要,或