草庐IT

javascript - SVG 仅在 safari 中悬停时调整大小

我有一个svg在safari中悬停时调整大小的奇怪问题。我正在使用jquery的悬停将页面上的svg替换为稍微不同的svg。这项工作在除safari之外的所有浏览器中都能正常工作,safari出于某种原因会在鼠标悬停和鼠标移出时完全调整svg的大小。我的svg的高度是在css中设置的img.svg-graphic{height:180px;}并以图片的形式显示在页面上当我将鼠标悬停在容器上时,我将svg换成另一个,然后在悬停时返回默认值。$('.container').hover(function(){$('.svg-graphic').attr('src','svg-icons/ve

javascript - 忽略 Safari 的初始页面加载 popstate

我正在使用pushState并根据当前页面的history.state在popstate事件上生成页面View。如果没有history.state我(希望)重新加载文档。window.onpopstate=function(event){if(window.history.state!==null){//pagewasajaxcreatedandhistorycreatedbypushState//recreatewithajax}else{//pagewasloadedfromservernormallydocument.location.reload()}}问题是Safari在初始

javascript - 浏览器 "drag and drop"事件 : Can anyone fill in the blanks?

直到现在我才真正需要使用任何拖动功能,所以让我向您介绍一下我到目前为止的发现:拖动事件是在用户拖动对象时发生的事件。这是“正确的”操作系统拖动,例如:隐藏一些文本并拖动它,或者甚至从浏览器外部拖入某些内容。据我所知,拖动时不会触发其他浏览器事件。(例如,onmouseover被忽略)。唯一有效的事件是拖动事件。在所有现代浏览器中,onDragEnter和onDragOver似乎都可以工作...但firefox缺少“onDragLeave”。对于拖放,FF使用“onDragDrop”,而IE和其他使用“onDrop”,而Safari似乎不支持它。事件似乎只适用于“可放置”元素,例如文本区

javascript - Javascript 的 "multiple execution contexts"是如何工作的?

Javascript没有可见的线程(但是——工作线程即将到来,请参阅JavaScriptandThreads中的更多信息)。但是,当您有多个FirefoxWindows和多个Firefox/IE选项卡时,它似乎确实有多个似乎同时存在的执行上下文——独立的。当页面上有多个iframe时,每个iframe都有自己的执行上下文,但它们共享数据。如果两个iframe在同一个域中,它们可以访问彼此的DOM并调用彼此的函数。尽管如此,我在谷歌上找不到调度模型的描述,即它是否是:并行/抢占式,在哪种情况下——您可以暂时暂停吗?任何形式的相互排斥?合作,在这种情况下——一个人如何屈服于另一个环境?非重

javascript - Safari 和 Chrome 上的 Tinymce 换行问题

有谁知道如何解决Safari和Chrome上的Tinymce换行问题。例如,假设我有两行纯文本。当我通过firefox或IE复制和粘贴时。它在一个p标签下。所以它与我在两行文本文件中看到的格式相同。但如果我通过Chrome或Firefox复制和粘贴,它会变成两个p标签。因此在显示时,那两条线之间有一个空格。我尝试添加safari插件,但没有任何反应。如果我放置名为paste_auto_cleanup_on_paste的插件:是的,它会删除空格,但两行文本变成一行。任何人都可以通过提供解决方案来帮助我吗?我注意到在使用Tinymce编辑器的wordpress上也没有出现这个问题,因为看起

javascript - IE 是否有像 Chrome、FF、Safari 和 Opera 那样简单的、javascript 驱动的扩展开发方式?

在放弃广泛的谷歌搜索之前,我想我会做最后的努力并在这里问...在Chrome、Safari、Firefox和Opera中——使用javascript(以及每个浏览器的一些nativejavascript函数)编写浏览器扩展非常容易...我似乎无法为IE找到这样的等效项。我见过Greasemonkey的替代品——其中大部分仅适用于非常简单的脚本。IE9或10是否支持使用javascript而不是C等的扩展开发?我有一个在FF、Chrome、Safari和Opera中工作的相当大的扩展,如果它不意味着完全重写成不同的语言,我很乐意支持IE,但我似乎找不到任何类型的IE等效于“内容脚本”或“

javascript - 在 safari mobile 上播放(和重播)声音

我需要在网站上出现新消息时播放声音。它在Chrome和Safari上运行良好,但我无法在Safari移动设备上运行。我看到必须通过用户操作来初始化声音,所以我尝试了:varsound=newAudio('./path/to/my/sound.mp3');varhasPlayed=false;$('body').bind('clicktouchstart',function(){sound.load();});sound.addEventListener('play',function(){hasPlayed=true;});varplaySound=function(){if(hasP

javascript - setInterval 在滚动期间在 iphone/ipad(移动 Safari)中暂停

我在网站中使用了setInterval函数,它在IE、Chrome、Firefox和Safari中运行良好。当我在ipad/iphone(safarimobile)上尝试时,我遇到了问题:如果我滚动屏幕,setInterval函数会暂停,只有当我停止滚动时它才会恢复!有没有办法防止函数暂停?谢谢 最佳答案 恐怕不行,没有办法阻止这种行为。在SO中有很多关于这个问题的主题(更多相关),这里特别是interestingone.它的总结很简单:iOSelasticscrollcan'tbetracked.There'snoeventlis

javascript - 为什么 JavaScript 函数声明在 chrome 和 safari 中表现不同?

这个问题在这里已经有了答案:Whyarefunctiondeclarationshandleddifferentlyindifferentbrowsers?(2个答案)关闭4年前。foo();if(true){functionfoo(){console.log(1);}}else{functionfoo(){console.log(2)}}在chrome中它显示UncaughtTypeError,但在safari中它显示2。

javascript - Safari 重复提交 ajax 调用

我注意到Safari5.0.5(6533.21.1)似乎提交了重复的ajax调用。当我运行以下简化测试用例时://jquery1.6include$(document).ready(function(){setTimeout(function(e){varreq1=$.getJSON('/api/private/customers.json');console.log('req1sent');},2000);setTimeout(function(e){varreq2=$.getJSON('/api/private/customers.json');console.log('req1s