cross-browser 相关问题

跨浏览器开发是指构建网站,Web应用程序,库或组件的实践,以便它们跨不同的Web浏览器和呈现引擎运行。

导致渐变带的原因以及如何解决它?

最近我正在编写一些线性和径向渐变,我注意到它们在 Chrome 中显示得很好,但在 Safari 中却有条带。从与该主题相关的许多其他问题来看,似乎

回答 1 投票 0

HTML/CSS 图像位于左侧,文本位于右侧。多浏览器

我正在尝试创建一个带有图像和文本的新闻栏。我可以让它在单独的浏览器(即 Chrome)上正常工作,但如果我在 Firefox 中打开它,它会弄乱格式。有没有...

回答 1 投票 0

indexedDB onupgradeneeded 事件永远不会完成

在我的应用程序中,用户应该能够动态创建和删除 objectStore。感谢indexedDB,这个操作(为什么在世界上)只允许在onupgradeneeded中。 升级后...

回答 2 投票 0

ASP.NET 中具有屏蔽编辑扩展器的文本框中的退格键或删除键在 Chrome 中不起作用

' 宽度=“60px”启用=“假”> <asp:TextBox ID="txttime" runat="server" CssClass="TextBox">' Width="60px" Enabled="false" ></asp:TextBox> <ajax:MaskedEditExtender ID="ajaxtime" runat="server" AcceptNegative="None" Enabled="True" TargetControlID="txttime" MaskType="Time" AcceptAMPM="true" ask="99:99" CultureName="en-CA" AutoComplete="true" AutoCompleteValue="99:00"/> 在上面的代码中,在文本框中删除或退格键可以在 Firefox 和 IE 中工作,但在 Chrome 中不起作用。 请帮忙.. 有什么建议吗...?? Google Chrome 在控件方面存在更多问题。您可以具体检查您正在运行的版本以及它需要什么 ascii 值?当您尝试使用按键时。还有一件事,检查你的文本框标记是否正确? 这似乎是 MaskedEditExtender 中的一个错误。请参阅这个 CodePlex 问题。 您可以尝试更新到最新版本,它指出该问题已在 2013 年 4 月的版本中修复。 或者,这里有一个小修复可用。 添加以下代码,它应该可以正常工作。谢谢。 protected void Page_Init(object sender, EventArgs e) { try { if (!ClientScript.IsStartupScriptRegistered(GetType(), "MaskedEditFix")) { ClientScript.RegisterStartupScript(GetType(), "MaskedEditFix", String.Format("<script type='text/javascript' src='{0}'></script>", Page.ResolveUrl("../Javascript/MaskedEditFix.js"))); } } catch (Exception ex) { throw ex; } } 下面的代码工作正常,将 TargetControlID="txtPhone" 替换为您的文本字段 ID。 <ajax:MaskedEditExtender ID="textPhone_MaskedEditExtender" MaskType="None" runat="server" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" TargetControlID="txtPhone" Mask="(999)-999-9999" AutoComplete="true" ClearMaskOnLostFocus="false" CultureName="en-US"> </ajax:MaskedEditExtender>

回答 4 投票 0

将 Uint8Array 保存到二进制文件

我正在开发一个网络应用程序,它可以打开二进制文件并允许对其进行编辑。 这个过程基本上就是ondrop -> dataTransfer.files[0] -> FileReader -> Uint8Array 本质上,我想要...

回答 3 投票 0

在 Chrome/Safari 中提交两次表单

我正在寻求执行基本的表单发布,但以下内容在 Chrome 和 Safari 中提交到服务器两次(但在 Firefox 中的行为符合预期): 我正在寻求执行基本的表单发布,但以下内容在 Chrome 和 Safari 中提交到服务器两次(但在 Firefox 中的行为符合预期): <form id="create-deck-form" action="/decks/create" method="post"> <fieldset> <legend>Create new deck</legend> <label for="deck-name-field">Name</label> <input id="deck-name-field" name="deck-name-field" type="text" value="" maxlength="140" /> <label for="tag-field">Tags</label> <input id="tag-field" name="tag-field" type="text" value="" maxlength="140" /> <input class="add-button" type="submit" value="Create" /> </fieldset> </form> 我想在提交之前使用 onsubmit 属性对字段进行验证,但是无论返回值是 true,表单都会提交两次。 我试图将 jQuery 处理程序绑定到表单,但在这里,默认行为不会被阻止,表单会提交两次,例如: <script type="text/javascript"> $(document).ready(function() { $("#create-deck-form").submit(function(event){ if($("#deck-name-field").val() == "") { event.preventDefault(); alert("deck name required"); } }); }); </script> 虽然我认为对于新人来说这里有一些明显的错误,但我很困惑为什么提交(无论是否经过验证)都会在 Chrome 和 Safari 中向服务器发出重复的帖子。如果有任何见解,我将不胜感激。 这个问题实际上与 Facebox 有关(http://defunkt.github.com/facebox/)。 Facebox 初始化会在页面加载后引发第二组请求。因此,如果您发布到 /myaction/create,Facebox 将启动第二组请求,并将基本 URL 设置为 /myaction/create。解决方法是在发布后重定向到处理 get 请求的 URL,这样您就不会执行两次发布。非常感谢您的帮助。 我不是100%确定,但请尝试这个: <script type="text/javascript"> $(document).ready(function() { $("#create-deck-form").submit(function(event){ if(!$("#deck-name-field").val().length) { return false; } }); }); </script> 如果这不起作用,请看看 for(e in $("#create-deck-form").data('events')) alert(e); 这将提醒您所有与您的 form 相关的事件。也许还有更多的事件处理程序?否则也警报/日志 $("#create-deck-form").attr('onclick') 和 $("#create-deck-form").attr('onsubmit') 以防万一。 您可以在收到警报后尝试 return false; 并删除 event.preventDefault();。也许您还需要在 else 子句中使用 return true;。我相信我在某个地方有这样的工作。 好吧,不确定这会有多大帮助,但尝试删除提交输入并通过 JavaScript 提交表单。例如 <input id="submit-button" class="add-button" type="button" value="Create" /> 那么你可以尝试一下,而不是听 onsubmit $('#submit-button').click(function(evt) { if(validationSuccess(...)) { $("#create-deck-form").submit(); } else { //display whatever } }); 现在你的方法也应该可以工作......但是这样你就可以调试你的问题所在......这应该只提交一次......祝你好运! 浏览器(例如 Safari 桌面版)将表单提交事件屏蔽为点击事件。因此,即使您在表单的提交事件上设置了 evt.preventDefault() 或 evt.stopPropagation(),您也可能会遇到提交表单的问题。 一个很好的例子和场景是通过按 ENTER 键提交表单。在这种情况下,Safari 会发出一个点击事件,可能会导致其他事件侦听器触发等。 解决方案: 您可以像这样监听那些屏蔽的提交事件: $('[type="submit"]', $('form')).on('click', function(evt) { ... } 现在你只想捕获那些实际上被屏蔽的事件;您不想捕获提交按钮上的鼠标点击。 因此你必须区分真正的点击和那些流氓点击。您可以通过检查 evt.originalEvent 对象来做到这一点。 如果你能找到一个pointerId(Chrome)键,那么恶意点击就会带有pointerId = -1(某个负值);如果您没有pointerId(例如Safari),您可以查找evt.originalEvent.detail键(Safari),如果出现恶意点击,该键的值为0(零)。 完整示例 $('[type="submit"]', $('form')).on('click', function(evt) { let do_not_submit = false // chrome if (typeof evt.originalEvent.pointerId !== 'undefined' && evt.originalEvent.pointerId < 0) { do_not_submit = true } // safari if (!do_not_submit && typeof evt.originalEvent.detail !== 'undefined' && evt.originalEvent.detail === 0) { do_not_submit = true } if (do_not_submit) { evt.preventDefault() evt.stopPropagation() return } // no worries ... // submitting ... }

回答 5 投票 0

javascript array.sort 具有未定义的值

Array.prototype.sort 如何处理数组中未定义的值? var 数组 = [1,未定义,2,未定义,3,未定义,4]; var array2 = []; 数组2[0] = 1;数组2[2] = 2;数组2[4] = 3;数组2[6] = 4; W...

回答 3 投票 0

从不同来源执行Web Worker

我正在开发一个库,我想将其托管在 CDN 上。该库将用于跨多个服务器的许多不同域。该库本身包含一个脚本(我们称之为 scr...

回答 4 投票 0

如何在浏览器上设置打印参数

“设置打印参数”是指可以设置页边距、纸张大小、字体大小等。 我的项目需要根据用户想要打印的不同报表设置默认打印设置。而我

回答 1 投票 0

在设置了宽高比的 div 内使用 height:100% - 某些浏览器中存在错误?

注意:这个问题是关于 CSS 中的一个新功能:宽高比。该网站上具有相似关键字的大多数问题都涉及非常不同的技术。 好的,有一个带有以下内容的 div

回答 1 投票 0

iFrame 内容拒绝仅在 iOS 浏览器上加载 - 即使发布了内容安全策略 (CSP) 框架祖先指令

我正在一个简单的内容管理系统中创建一个网站(站点A)。由于 CMS 无法与我的数据服务器交互,因此我在另一个 Web 服务器(站点 B - 子域)上托管了一些 Web 内容。

回答 1 投票 0

chrome setSelectionRange() 在 oninput 处理程序中不起作用

我正在使用一些自动完成代码。 setSelectionRange() 用于选择 oninput 事件处理程序中已完成的文本。它至少在 Firefox 14 中有效,但在 Chrome(6, 17) 中无效。 简化...

回答 5 投票 0

Promise.defer() 浏览器支持

我正在寻找一种创建延迟对象的方法,该对象将在当前范围之外解析。我喜欢延迟对象,正如我所见,Chrome 38 中的 Promise.defer() 返回延迟对象。 布...

回答 3 投票 0

现代网络浏览器可以并行下载哪些类型的网络资源?另外,什么不能并行下载?

现代网络浏览器可以并行下载哪些类型的网络资源?另外,什么不能并行下载? StackOverflow 上的大多数答案都涉及“可以下载多少资源...

回答 1 投票 0

Flexbox 与 Firefox 中的嵌套 Flex 容器和垂直 lr 书写模式不同

当我在 Firefox 中使用垂直书写模式和两个嵌套的 Flex 容器时遇到问题。具体来说,第二个弹性容器不会扩展以包含其子容器,休息......

回答 1 投票 0

自定义本地字体不适用于 safari 或 IOS 设备,但适用于带有 Next.js 14 的 Chrome/Firefox

这是我的第一篇 stackoverflow 帖子。我一直在试图找出一个解决方案,解释为什么该字体不适用于 Safari 或 IOS 设备中的任何浏览器,但它适用于 Chrome,

回答 1 投票 0

我的 React 应用程序中跨浏览器的不同视图

我的网站在 Chrome 移动视图中与在实际手机上的 Safari 视图中看起来不同。 我已经为所有样式使用了前缀(WebKit,...) 我还使用 normalize.css 来解决任何问题 我需要帮助

回答 1 投票 0

表单标签在每个浏览器中的行为都相同吗?

我正在为我的网站制作表格。我使用默认 CSS 添加了一些标签,这些标签没有样式。它们以 100% 的宽度堆叠在输入字段的顶部,并位于内联旁边的左侧

回答 1 投票 0

转义 CSS 选择器

我已经转义了 CSS 选择器,如下所示: $('#a\[b\]-c') [ 和 ] 不是有效字符,因此我用两个斜杠将它们转义。似乎工作得很好,但我的一位客户报告说有些......

回答 1 投票 0

getParent 函数在 ie 中不起作用

我有这个功能: jQuery.fn.getParent = 函数(num) { var 最后 = this[0]; 对于 (var i = 0; i < num; i++) { last = last.parentNode; } return jQuery(last); }; and this html : 我有这个功能: jQuery.fn.getParent = function(num) { var last = this[0]; for (var i = 0; i < num; i++) { last = last.parentNode; } return jQuery(last); }; 还有这个 html : <div class="statuscontainer"> <div class="title"> Title of div here </div> blah blah blah blah <br> <a onclick="$(this).getParent(4).fadeTo("slow",.3);">fade only this div</a> </div> <div class="statuscontainer"> <div class="title"> Title of div here </div> blah blah blah blah <br> <a onclick="$(this).getParent(4).fadeTo("slow",.3);">fade only this div</a> </div> 我想要的是,每个链接都应该淡出它的主状态容器 div 而不是所有其他 div,这是使用 jQuery GetParent 完成的。 这在 firefox/chrome/safari 中效果很好,但在 IE 7/8 中,只有 blah blah blah 和链接褪色,而不是整个“statuscontainer”。 你有什么建议? 谢谢 我看不出代码有什么问题,看起来很简单。 也许使用这些 JQuery 函数之一有帮助? 家长 最近 我假设作为 JQuery 的核心功能,任何跨浏览器问题都可能在那里得到解决。 谢谢大家,我找到了解决方案,一些没有褪色的div被定位在“相对”中,一旦我删除了定位,它就起作用了:) 谢谢 我建议使用 $(this).closest('.statuscontainer').fadeTo() 代替。这样,无论 <a> 位于 DOM 中的哪个位置 - 它都会在父级中找到最接近的 .statuscontainer。 .closest()文档 为什么不直接使用jQuery('theElementSelector').parents(':eq(3)')?请注意,我没有查看您实际想要的索引,但它应该是 3 或 4,具体取决于。

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.