Tag: 浏览器

$(’h1’)如何在jQuery中作为数组登录到Web控制台?

如果你在浏览器中执行console.log($(‘some selector’)) ,它将返回看起来像数组的内容(第一行): 但请注意,它不是instanceof Array的instanceof Array ,但它实际上是jQuery对象 。 当你执行console.dir($(‘h1’)) ,它显示它实际上是jQuery对象。 问题是,它们如何使它看起来像是Web控制台中的数组? 我注意到在jQuery源代码中它们添加了一些Array和Object方法的引用,并且在这里它们将toArray (以及slice和其他)添加到jQuery对象。 Web控制台是否以某种方式检查这些方法,如果找到一个( toArray , indexOf , slice等),它会将其打印为数组吗? 我想从任何自定义对象中获取此行为,例如Ember.ArrayProxy 。 目前,当您记录Ember.ArrayProxy它显示> Object或其他,但将它显示为数组会很不错。 有任何想法吗?

“将密码显示为文本”控件

我有一个通常的登录表单,包含两个输入字段,一个用于登录,一个用于密码。 我目前正在尝试添加一个控件,将输入的密码显示为纯文本,因此用户可以检查拼写错误。 问题是浏览器(至少是Firefox)不允许动态更改输入字段的type属性,因此我不能只将type=”password”更改为type=”text” 。 另一个问题是浏览器不允许获取密码字段的值,因此我无法创建新的input type=”text”并将其值设置为密码的值。 我已经看到了这个任务的几种不同的方法,包括这个 ,但它们只有在键入密码时才有效,并且在浏览器自动填充密码时失败。 因此,欢迎提出任何建议。 我正在使用jQuery。

Gzipped JSON文件没有解压缩

我将大型(30MB +)JSON文件存储在我的服务器上作为file.json。 使用jQuery的getJSON(“http://site/file.json”)函数,它可以正常工作。 但是,正如您可能认为下载30MB的JSON响应需要花费大量时间。 相反,我现在将它们存储为Gzip文件(file.json.gz),将它们降低到不到1MB! 我想通过使用getJSON(“http://site/file.json.gz”)来做同样的事情,但看起来浏览器没有解压缩GZIP的响应,因此解析它不起作用。 那么,有没有办法让jQuery或浏览器解压缩使用GZIP压缩的静态JSON文件,如file.json.gz? BTW:正确压缩保存的文件。 如果我手动解压缩它们,我会得到30MB +有效的JSON文件。

单击“浏览器后退”按钮,将用户返回到上一页滚动到的位置

在浏览器中按后退按钮时,是否可以将用户带回到他们向下滚动的页面区域? 因为— pageA是你的屏幕尺寸的两倍(因此你必须滚动阅读更多)。 单击pageA上的链接转到新页面 – pageB。 阅读后,请单击浏览器中的。 现在,当您返回到pageA时,您将返回到顶部,并且必须向下滚动到您继续阅读页面其余部分的位置。 是否有Jquery或JS方法返回到页面中的那一点。 也许是.scrollTop()的东西?

如何在2个浏览器选项卡/窗口之间进行通信?

我有一个Web应用程序,它在新的浏览器窗口/选项卡中作为第二个Web应用程序启动。 我想在用户在第二页上提交输入时更新原始页面上的内容。 真实世界示例:Google在GMail中使用此行为。 在撰写新邮件时,如果单击“收件人”链接,则会在新的浏览器窗口中显示联系人列表。 这使原始撰写电子邮件窗口保持打开状态并激活输入,同时用户可以随时从联系人列表中选择电子邮件收件人。 当他们提交该窗口时,所选的电子邮件地址将添加到原始撰写窗口中的收件人列表中。 这是如何完成的? 我想可以使用AJAX完成,但理想情况下,该解决方案将避免通过服务器路由它所需的往返/编程逻辑。 作为参考,我的技术堆栈是一个ASP.NET MVC应用程序,它启动了第二个包含Silverlight应用程序的ASP.NET MVC应用程序。 两个应用程序都可以/确实使用jQuery。 谢谢你的帮助。

如何在JavaScript中听Ctrl-P键按?

我想禁用某些网页的打印。 如何将浏览器热键(Cntrl + P)连接到按下热键时将触发的javascript?

WCF GET URL长度限制问题:错误请求 – 无效的URL

我试图通过使用GET方法的jQuery AJAX调用来访问WCF服务。 因此,有时URL的参数很长。 当参数变得如此冗长时,jQuery AJAX调用失败,并且什么都不返回。 所以我提出了一个断点并把URL拿出去测试。 当我在浏览器中尝试使用相同的URL时(我尝试过FireFox和Chrome),当URL长度过长时会返回以下内容。 错误请求 – 无效的url HTTP错误400.请求URL无效。 我也检查了长度限制。 当URL中的字符数(编码格式)超过1011个字符(包括http://)时,我才会收到错误。 任何人都有相同的情况,并找到任何解决方案吗? 是Windows限制还是可以通过编程方式通过任何设置进行管理? 我尝试过POST方法,但我不知道我无法使它工作。 因为它需要一些web.config更改。 编辑 我测试过生成错误的URL http://localhost:64973/Member.svc/SaveMemberWithDetail/%7B%22ID%22%7C%222%22,%22TypeID%22%7C%222%22,%22Title%22%7C%22Mr.%22,%22FirstName%22%7C%22Firnas%22,%22MiddleName%22%7C%22%22,%22LastName%22%7C%22Aliyar%22,%22Gender%22%7C%221%22,%22DateOfBirth%22%7C%222000-01-01%22,%22Nationality%22%7C%22Sri%20Lankan%22%7D/%5B%7B%22AddressLine1%22%7C%22Changed%20Address%20Line1%22,%22AddressLine2%22%7C%22Colombo%22,%22City%22%7C%22Colombo%2010%22,%22State%22%7C%22WP%22,%22PostCode%22%7C%2201000%22,%22CountryID%22%7C%221%22,%22ID%22%7C%227%22,%22TypeID%22%7C%221%22%7D%5D/%5B%7B%22Telephone%22%7C%22015154645%22,%22TypeID%22%7C%221%22%7D%5D/%5B%7B%22EmailAddress%22%7C%22gen1@dfs%22,%22ID%22%7C%2226%22,%22TypeID%22%7C%221%22%7D,%7B%22EmailAddress%22%7C%22gen2@jfasd%22,%22ID%22%7C%2227%22,%22TypeID%22%7C%221%22%7D,%7B%22EmailAddress%22%7C%22g1@e.cm%22,%22ID%22%7C%2228%22,%22TypeID%22%7C%221%22%7D,%7B%22EmailAddress%22%7C%22g2@gogle.com%22,%22ID%22%7C%2229%22,%22TypeID%22%7C%221%22%7D,%7B%22EmailAddress%22%7C%22g@go.com%22,%22ID%22%7C%2229%22,%22TypeID%22%7C%221%22%7D%5D/%7B%7D/481 未编码的URL版本: http://localhost:64973/Member.svc/SaveMemberWithDetail/{“ID”|”2″,”TypeID”|”2″,”Title”|”Mr.”,”FirstName”|”Firnas”,”MiddleName”|””,”LastName”|”Aliyar”,”Gender”|”1″,”DateOfBirth”|”2000-01-01″,”Nationality”|”Sri Lankan”}/[{“AddressLine1″|”Changed Address Line1″,”AddressLine2″|”Colombo”,”City”|”Colombo 10″,”State”|”WP”,”PostCode”|”01000″,”CountryID”|”1″,”ID”|”7″,”TypeID”|”1″}]/[{“Telephone”|”015154645″,”TypeID”|”1”}]/[{“EmailAddress”|”gen1@dfs”,”ID”|”26″,”TypeID”|”1″},{“EmailAddress”|”gen2@jfasd”,”ID”|”27″,”TypeID”|”1″},{“EmailAddress”|”g1@e.cm”,”ID”|”28″,”TypeID”|”1″},{“EmailAddress”|”g2@gogle.com”,”ID”|”29″,”TypeID”|”1″},{“EmailAddress”|”g@go.com”,”ID”|”29″,”TypeID”|”1″}]/{}/481 我的参数是Json对象的集合。 我不认为任何字符会导致问题,因为,如果我只是将少数字母数字字符减少到小于限制,它就可以工作。 我正在使用Windows 8 Professional中的Visual Studio 2012 Premium运行我的应用程序,所以它的.NET 4.5和IIS Express随之而来。 进一步的研究 当我试图进一步调查时,这不是我已经提到的限制,即完整url的长度。 但是,每个参数的长度限制为260个字符。 所以,我不确定URL的总长度,但是每个参数(用“/”分隔)都有限制。 我发布的上述URL的问题是电子邮件地址JSON参数长度为261个字符,如下所示。 [{“EmailAddress”|”gen1@dfs”,”ID”|”26″,”TypeID”|”1″},{“EmailAddress”|”gen2@jfasd”,”ID”|”27″,”TypeID”|”1″},{“EmailAddress”|”g1@e.cm”,”ID”|”28″,”TypeID”|”1″},{“EmailAddress”|”g2@gogle.com”,”ID”|”29″,”TypeID”|”1″},{“EmailAddress”|”g@go.com”,”ID”|”29″,”TypeID”|”1″}] 如果我从中删除1个字符,它就可以了。 是浏览器限制吗? 操作系统限制? 更新:解决方案 当我进一步研究这个问题时,我找到了一个对我有用的解决方案。 我在这里更新,因为它可能对遇到这个问题的其他人有用。 这是一个IIS设置 问题是因为,REST URL中每个参数的默认字符限制是260,它在注册表中定义。 因此,您必须更新注册表以增加运行IIS Server / IIS […]

浏览器“后退”按钮与jQuery动画页面

我有一个具有挑战性的问题,我一直在争夺一段时间。 问题:当我使用浏览器的后退按钮返回上一页时,在播放完所有动画后,页面将以最终状态显示。 我希望它以初始状态显示并重放动画。 我的网站使用一些基本的jQuery动画。 每个页面的初始状态的主要内容隐藏在浏览器窗口的下边缘之下,当窗口加载时,主要内容动画显示在浏览器中。 当访问者单击任何菜单链接时,主内容会再次卷起并消失在浏览器窗口的上边缘之上 – 然后加载新页面。 使用这两段代码实现了整个过程: //Animate the content up from below the browser window $(‘#maincontent’).animate({top: “15%”}, 2000); 和 //Animate the content up to hide above the browser window $(‘#menu a’).click(function(event) { event.preventDefault(); var href = this.href; $(‘#maincontent’).animate({ top: ‘-300%’ }, 500, function() { window.location = href; }); }); 问题:当单击浏览器后退按钮时,如何使页面显示为初始状态? 我浏览了StackOverflow一段时间了。 人们对此问题进行了很多讨论,但似乎没有人能够找到真正有效的解决方案。 […]

如何使用javascript在浏览器中显示PDF流

我正在使用jquery的ajax方法访问现有的WCF Web服务(它将PDF作为字节流返回)。 当对服务的调用完成时,我最终得到一个包含PDF的javascript变量(该变量包含二进制数据,从“%PDF-1.4 …”开始)。 我想在新的浏览器窗口中显示这个PDF,但是我很难实现这个目标。 到目前为止,我的研究表明,我可能能够使用数据实现我想要的东西:uri,所以我在ajax调用完成时调用的代码如下: function GotPDF(data) { // Here, data contains “%PDF-1.4 …” etc. var datauri = ‘data:application/pdf;base64,’ + Base64.encode(data); var win = window.open(“”, “Your PDF”, “width=1024,height=768,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no”); win.document.location.href = datauri; } 这会导致打开一个新的浏览器窗口,但内容为空。 有趣的是,如果我通过使用文件:uri(例如file:// c:/tmp/example.pdf)将我的浏览器(IE9)指向我本地磁盘上的现有文件,那么我得到相同的结果,即空白窗口。 有什么方法可以显示这个PDF数据吗?

使用js / jquery检测flash播放器的现代或非弃用方式?

首先,抱歉在这里重新提出这个问题。 我已经尝试了两天如何使用javascript / jquery来完成这项工作,我想我已经阅读了所有堆栈溢出和其他博客相关的post,所以请不要将其标记为重复,因为我无法使用从2012年到2017年的过时脚本。 我有一个页面重定向到第三方电子学习平台,其中一些内容需要闪存才能工作。 许多用户不关心他们的机器上安装了哪些软件(多么新的,呵呵)所以我需要检测它并显示典型消息“请安装/更新flash player点击这里”,但我找不到“现代“脚本/方式,在任何地方,如果可能的话,简化。 我尝试过的所有脚本都已弃用,或者在所有浏览器中都返回false,即使我安装了最新版本的Flash并处于活动状态。 Anny帮助将不胜感激(除了链接到现在不起作用的旧post或脚本,显然)。 非常感谢!