我使用以下代码提交到表单:
element.dispatchEvent(new Event("submit"));
Run Code Online (Sandbox Code Playgroud)
Inspector返回错误:对象不支持此操作
这适用于Chrome.
此命令的目的是在单击时对窗体上的提交事件进行调用.
Jquery不是一个选择
javascript javascript-events dispatchevent internet-explorer-11
使用JavaScript定位IE11的最不容易出错的方法是什么?
注意:这应该仅用于分析或通知用户他们正在使用的浏览器.对于其他一切,都有特征检测.
根据此页面http://kangax.github.io/compat-table/es6/,ES6中未实现ES6功能.
IE 11有一天实施它们的计划还是我可以忘记它?是否有一个页面解释了他们对该主题的意图?
我读到了某个地方(我不记得究竟在哪里)他们不打算修复IE 11中的错误,所以我的猜测是他们不会打扰实现新功能?
IE11刚刚发布(作为开发人员预览版),我在IE11开发工具中找不到IE7/8/9/10模拟器.有谁知道现在在哪里找到它们?
internet-explorer ie-compatibility-mode internet-explorer-11
我正在为我的网格使用以下HTML标记.
<section class="grid">
<article class="grid-item width-2x height-2x">....</article>
<article class="grid-item">....</article>
<article class="grid-item">....</article>
<article class="grid-item width-2x">....</article>
<article class="grid-item height-2x">....</article>
<article class="grid-item">....</article>
<article class="grid-item">....</article>
<article class="grid-item width-2x height-2x">....</article>
</section>
Run Code Online (Sandbox Code Playgroud)
SCSS代码如下所示:
.grid {
display: grid;
grid-template-columns: repeat( 4, 1fr );
grid-gap: 30px;
align-items: start;
.grid-item {
&.height-2x {
grid-row: span 2;
}
&.width-2x {
grid-column: span 2;
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于我在我的工作流程中使用自动前缀,因此它会自动添加带有-ms
前缀的所有相关属性.我可以通过检查元素确认.
现在,问题是此代码在Chrome,Firefox和Opera中运行良好,但是当我在Microsoft Edge或IE 11中打开此页面时,所有网格项在第一个单元格处相互重叠.根据这个站点,这些浏览器支持带有-ms
前缀的CSS Grid布局.我为这个场景创建了一个CodePen.
为什么不起作用?
.grid {
display: -ms-grid;
display: grid;
-ms-grid-columns: (1fr)[4];
grid-template-columns: repeat(4, 1fr); …
Run Code Online (Sandbox Code Playgroud)在IE 11中,我使用ToLocaleDateString()获得了有趣的结果.返回的字符串在浏览器中看起来很好,例如"1/28/2014 11:00:46 AM",但是如果我将该值复制并粘贴到纯文本编辑器中,它看起来像这样:"?1?/? 28?/?2014?11?:?00?:?46 ?? AM".
有趣的是,如果我将文本粘贴到Microsoft产品中,它看起来很好......问题是,如果您尝试以编程方式使用该值来创建日期,则它无效.您可以通过在IE11中打开一个控制台并创建一个新日期,使用ToLocaleDateString()对它进行测试,然后尝试使用生成的字符串以javascript或您选择的语言创建一个新日期(我'我在这里使用ASP.NET ...).
我做错了什么,或者是否有其他方式我应该与javascript日期进行交互?我怎样才能摆脱那些时髦的符号?
编辑: 感谢下面的评论,我能够弄清楚未显示的字符是什么,它们是从左到右的标记.根据编辑器我将值粘贴到编辑器设置使用的编码和编码,文本将以不同的方式显示:有时带"?",有时没有.
localStorage
Internet Explorer 11(Windows 7版本)中的对象包含某些函数的字符串表示形式,而不是您期望的本机调用.
这只打破了香草JavaScript和像JSFiddle这样的网站对这段代码没有任何问题,但我怀疑是因为有localStorage
正确的polyfill 来纠正它.
以此HTML页面代码为例:
<!DOCTYPE html>
<script>
localStorage.setItem('test', '12345');
alert(localStorage.getItem('test'));
localStorage.clear();
</script>
Run Code Online (Sandbox Code Playgroud)
除了IE11之外,这在我安装的所有浏览器中运行良好.第一行' SCRIPT5002:预期的功能 ' 发生错误.
看一下setItem
IE开发人员工具控制台中函数的实际类型,说明它是一个字符串......?
typeof localStorage.setItem === 'string' // true
Run Code Online (Sandbox Code Playgroud)
打印出字符串以setItem
显示以下内容:
"function() {
var result;
callBeforeHooks(hookSite, this, arguments);
try {
result = func.apply(this, arguments);
} catch (e) {
callExceptHooks(hookSite, this, arguments, e);
throw e;
} finally {
callAfterHooks(hookSite, this, arguments, result);
}
return result;
}"
Run Code Online (Sandbox Code Playgroud)
奇怪的是,并非所有函数都被字符串替换,例如,相应的getItem
函数确实是一个函数并且按预期工作.
typeof localStorage.getItem === 'function' // true
Run Code Online (Sandbox Code Playgroud)
将文档模式(仿真)更改为10或9仍然无法解决问题,并且两者都会导致相同的错误.将文档模式更改为8会出现以下错误" …
javascript html5 windows-7 local-storage internet-explorer-11
我正在使用Angular 2.0 final,当我在格式字符串中添加小时和分钟时,我的日期格式不正确:
在组件的模板中,我有:
<th id="lastexecution">{{dto.LastExecution | date:'yyyy-MM-dd HH:mm:ss'}}</th>
Run Code Online (Sandbox Code Playgroud)
IE 11中的输出日期是:
2016-09-27 15:00:9/27/2016 3:53:46 PM:9/27/2016 3:53:46 PM
Run Code Online (Sandbox Code Playgroud)
使用{{dto.LastExecution | 日期: 'YYYY-MM-DD'}}
IE 11中的输出日期是正确的:
2016-09-27
Run Code Online (Sandbox Code Playgroud)
这是我在package.json中使用的组件版本:
{
"name": "ima_sentinel",
"version": "1.0.0",
"description": "QuickStart package.json from the documentation, supplemented with testing support",
"scripts": {
"start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
"docker-build": "docker build -t ima_sentinel .",
"docker": "npm run docker-build && docker run -it --rm -p 3000:3000 -p 3001:3001 ima_sentinel",
"pree2e": "npm run webdriver:update",
"e2e": "tsc && concurrently \"http-server -s\" …
Run Code Online (Sandbox Code Playgroud) 我猜这是一个错误,但我还没有找到任何关于此的讨论.
众所周知,IE10将(针对规范)本地存储事件(即,在触发事件的同一全局执行上下文中),但IE11似乎更偏离规范(http://www.w3.org)/TR/webstorage /)当涉及到同域iframe时:
您可以通过在两个单独的选项卡中打开以下链接来测试此问题:http://hansifer.com/main.html
任何人都对这个怪癖有任何见解?
最新测试版本: IE v11.0.9600.16476 (更新2016-08-13:显然它是相关的"更新版本",而不是IE的"关于"对话框中报告的"版本")
链接到错误报告: https ://connect.microsoft.com/IE/feedback/details/811546/ie11-localstorage-events-fire-twice-or-not-at-all-in-iframes
更新2015-10-26
我只是注意到这似乎在v11.0.9600.18059中修复了,虽然我无法分辨修复程序何时删除,因为它似乎没有在任何最近的KB中被引用.
不幸的是,IE11 localStorage事件在其他方面仍然存在异常(尽管这些与本文中提出的问题不同):
IE在窗口上下文中引发localStorage事件,从中调用localStorage设置或删除触发事件的事件.localStorage事件只应在同一来源的外部窗口上下文中引发.(更新:在EdgeHTML 13.10586中工作)
IE使用空字符串,而不是null
用于e.oldValue/e.newValue
在添加存储物品/移除.(更新:仍然是EdgeHTML 13.10586中的问题)
IE不确定地调用localStorage事件处理程序,或者在设置/删除之前或之后生效,而不是一致地执行AFTER.
更新2015-12-24
看来这个bug被转移到了Edge(测试过的EdgeHTML 13.10586)
更新2016-02-02
韦尔普,没关系.在IE v11.63.10586.0中再次观察到此错误(更新2016-08-13:显然它是相关的"更新版本",而不是IE的"关于"对话框中报告的"版本")
更新2016-08-13
现在似乎已在IE(更新版本11.0.34)中修复了此问题,尽管存储事件仍然在原始窗口中针对规范(如上所述的已知长期问题)触发.
我发现这个KB包含在IE 2016年6月14日的安全更新中,尽管根据其描述它只涉及上面的第二个项目符号.
至于Edge(经测试的EdgeHTML 14.14393),似乎现在已经修复了这个问题,但是存在一个新问题:存储事件不会在同一页面的同源帧中触发.
我在这里分别向MS报告.
我正在使用webpack捆绑我的JavaScript.我依赖于使用任何承诺的冰棒等模块.
这是我的代码:
var popsicle = require('popsicle');
popsicle.get('/').then(function() {
console.log('loaded URL');
});
Run Code Online (Sandbox Code Playgroud)
这在Promise
可用的浏览器中工作正常,但IE 11不提供Promise.所以我想使用es6-promise作为polyfill.
我尝试添加一个明确的ProvidePlugin
给我webpack.config.js
:
plugins: [
new webpack.ProvidePlugin({
'Promise': 'exports?global.Promise!es6-promise'
})
]
Run Code Online (Sandbox Code Playgroud)
但我仍然在IE 11中得到错误:any-promise browser requires a polyfill or explicit registration e.g: require('any-promise/register/bluebird')
.
我尝试明确附加全局:
global.Promise = global.Promise || require('es6-promise');
Run Code Online (Sandbox Code Playgroud)
但IE 11给出了一个不同的错误:Object doesn't support this action
.
我也尝试过明确注册es6-promise:
require('any-promise/register/es6-promise');
var popsicle = require('popsicle');
Run Code Online (Sandbox Code Playgroud)
这有效,但我必须在每个加载的文件中执行此操作popsicle
.我想Promise
加入window
.
如何window.Promise
使用webpack …