草庐IT

javascript - 如何设置跨源 header 以允许数据 URL?

我有一个JavaScript脚本,它接受一个SVG字符串并尝试将它放在Canvas上(对其进行栅格化)。这在Chrome和Firefox中运行良好,但Safari会抛出错误:varimg=newImage();img.onload(function(){context.drawImage(img,0,0);exportImage.src=canvas.toDataURL('image/png');});img.src="data:image/svg+xml;utf8,...";以这种方式完成后,Safari会在toDataURL()调用中抛出错误:SecurityError:DOMEx

javascript - 覆盖对象原型(prototype)并不允许任何进一步的覆盖

我正在尝试编写一个库来拦截所有XMLHttpRequest调用并在最终发送请求之前做一些事情,方法是覆盖其原型(prototype),例如:varoriginal_open=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){//myownoverridelogicherebeforerunningtheoriginalfunctionoriginal_open.apply(this,arguments);};问题是,我想保证当有人使用这个库时,网页上的任何其他代码都不可能重新覆盖这个效果。因为否

允许具有多种数据类型的 Javascript 参数 : good practice or not?

我已经多次看到-特别是在jQuery中-一个函数可以有多种有效数据类型,比方说字符串或函数。此外,在我自己的代码中,有时我的函数可以采用一个或多个值。所以我可以调用函数:myFunc("arg");ormyFunc(["arg1","arg2",...]);这看起来更灵活,打字也更方便,但这真的是好事吗?因为另一方面,没有明确说明函数是什么类型,据我所知,JIT编译器无法高效工作。并且通常必须进行某种类型的类型强制转换,这会带来额外的性能损失。那么,即使数组中只有一个对象,总是写:myFunc(["arg"])会更好吗?你对此有何看法? 最佳答案

javascript - 不允许窗口将顶层框架导航导航到数据 URL

前面的代码将在新窗口中打开pdf文件。varpdfDocument="data:application/pdf;base64,"+data;window.open(pdfDocument);更新chrome后,它似乎停止工作。显然,chrome删除了数据URL的顶层框架导航。我现在该如何解决我的问题?我需要在新窗口中打开此pdf。任何帮助将不胜感激。更新使用iFrame解决了这个问题。感谢Pedro给我想法。$(function(){setManualFrame();});functionsetManualFrame(){$("#ManualFrame").attr("height",

javascript - 如何通过 Content-Security-Policy 允许 `javascript:void(0)` 在 HTML 元素属性中使用?

我希望能够做到或确保即使处理程序未能阻止默认操作也不会发生任何事情。我应该如何声明允许使用Content-Security-PolicyHTTP响应header而不求助于unsafe-eval? 最佳答案 我最近将CSP策略应用于一个巨大的VUE项目,方法是将元header添加到index.html。GoogleChrome会打印关于javascript:的警告链接,但除此之外没有其他任何事情发生。我所做的只是删除href="javascript:属性,并添加了一个样式来保持游标样式:a:hover{cursor:pointer;}

javascript - chrome 弹出窗口阻止程序允许页面后何时重新检查

我的应用程序有时会打开弹出窗口拦截器,当用户运行应用程序时,chrome在url框(右侧)中有一些标志,告诉用户弹出窗口已被阻止,在这种情况下,我给用户另外的新警告消息,例如“请注意该页面已被阻止,请启用它...”我的问题是我何时以及在哪个学期需要再次进行此检查,假设用户允许新的应用程序页面ifusercloseandopenthebrowserdoesheneedtoenablethispop-upagain?Iknowthatiftheuserwillrunitindiffrentchromeversions(likecanaryorbeta)heprobablyneedtocon

javascript - 一次只允许一个异步操作

我正在构建一个站点,一个特定的操作会触发一个较长的服务器端进程运行。这个操作不能同时运行两次,所以我需要实现某种保护。它也不能同步,因为服务器在运行时需要继续响应其他请求。为此,我构建了这个小型概念测试,使用sleep5代替我实际的长时间运行的进程(需要express和child-process-promise,在带有sleep命令的系统上运行,但替换为Windows的任何命令):varsite=require("express")();varexec=require("child-process-promise").exec;varbusy=false;site.get("/test

javascript - 正则表达式验证器不允许\w 使用非英文字符

我的页面中有电子邮件字段,我正在使用我的asp.net提供的正则表达式验证器对其进行验证。我使用与电子邮件验证器相同的验证表达式,即ValidationExpression="\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*"它工作正常,但当我尝试输入非英文字母时出现问题,例如èéüûă等但我的问题是,当我在javascript中使用相同的表达式时,它允许这些字符,即使在服务器端,相同的表达式也允许这些字符。我认为'\w'允许所有字母数字字符以及非英文字符,但是我不知道为什么在验证器中使用它时不允许。如果我做错了什么,请提出建议。

javascript - XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许来源

我想制作一个使用来自另一个域的xml数据的小型网站。(天气数据来自WeatherUnderground:www.wunderground.com)。我只使用html和javascript,并在VisualStudioExpress2012forWeb中全部编写。我按如下方式发出并发送xml请求:url="http://api.wunderground.com/api/3c6e3d838e217361/geolookup/conditions/forecast/q/51.11999893,-114.01999664.xml";xmlhttp=newXMLHttpRequest();xml

javascript - 如何在我的输入字段中只允许数字、一个逗号和逗号后的两位数字?

这个问题在这里已经有了答案:ValidatedecimalnumbersinJavaScript-IsNumeric()(52个回答)关闭6年前。我有一个输入框,它只允许数字和一个点。$('.number').keypress(function(event){var$this=$(this);if((event.which!=46||$this.val().indexOf('.')!=-1)&&((event.which57)&&(event.which!=0&&event.which!=8))){event.preventDefault();}vartext=$(this).val(