标签: internet-explorer-11

dispatchEvent在IE11中不起作用

我使用以下代码提交到表单:

element.dispatchEvent(new Event("submit"));
Run Code Online (Sandbox Code Playgroud)

Inspector返回错误:对象不支持此操作

这适用于Chrome.

此命令的目的是在单击时对窗体上的提交事件进行调用.

Jquery不是一个选择

javascript javascript-events dispatchevent internet-explorer-11

56
推荐指数
3
解决办法
3万
查看次数

如何仅使用JavaScript定位Internet Explorer 11?

使用JavaScript定位IE11的最不容易出错的方法是什么?

注意:这应该仅用于分析或通知用户他们正在使用的浏览器.对于其他一切,都有特征检测.

javascript browser internet-explorer internet-explorer-11

55
推荐指数
2
解决办法
8万
查看次数

在Internet Explorer 11中支持ES6

根据此页面http://kangax.github.io/compat-table/es6/,ES6中未实现ES6功能.

IE 11有一天实施它们的计划还是我可以忘记它?是否有一个页面解释了他们对该主题的意图?

我读到了某个地方(我不记得究竟在哪里)他们不打算修复IE 11中的错误,所以我的猜测是他们不会打扰实现新功能?

javascript internet-explorer internet-explorer-11

54
推荐指数
1
解决办法
7万
查看次数

IE11开发工具中的IE7/8/9/10仿真器在哪里?

IE11刚刚发布(作为开发人员预览版),我在IE11开发工具中找不到IE7/8/9/10模拟器.有谁知道现在在哪里找到它们?

internet-explorer ie-compatibility-mode internet-explorer-11

53
推荐指数
1
解决办法
15万
查看次数

即使使用-ms前缀,CSS网格布局也无法在Edge和IE 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.

CodePen链接

为什么不起作用?

.grid {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[4];
  grid-template-columns: repeat(4, 1fr); …
Run Code Online (Sandbox Code Playgroud)

html css internet-explorer-11 css-grid

50
推荐指数
3
解决办法
8万
查看次数

IE11中的ToLocaleDateString()更改

在IE 11中,我使用ToLocaleDateString()获得了有趣的结果.返回的字符串在浏览器中看起来很好,例如"1/28/2014 11:00:46 AM",但是如果我将该值复制并粘贴到纯文本编辑器中,它看起来像这样:"?1?/? 28?/?2014?11?:?00?:?46 ?? AM".

有趣的是,如果我将文本粘贴到Microsoft产品中,它看起来很好......问题是,如果您尝试以编程方式使用该值来创建日期,则它无效.您可以通过在IE11中打开一个控制台并创建一个新日期,使用ToLocaleDateString()对它进行测试,然后尝试使用生成的字符串以javascript或您选择的语言创建一个新日期(我'我在这里使用ASP.NET ...).

我做错了什么,或者是否有其他方式我应该与javascript日期进行交互?我怎样才能摆脱那些时髦的符号?

编辑: 感谢下面的评论,我能够弄清楚未显示的字符是什么,它们是从左到右的标记.根据编辑器我将值粘贴到编辑器设置使用的编码和编码,文本将以不同的方式显示:有时带"?",有时没有.

javascript date internet-explorer-11

47
推荐指数
2
解决办法
2万
查看次数

在Windows 7上的IE11中破坏了JavaScript localStorage对象

localStorageInternet 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:预期功能 ' 发生错误.

看一下setItemIE开发人员工具控制台中函数的实际类型,说明它是一个字符串......?

    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

44
推荐指数
2
解决办法
4万
查看次数

Angular2日期管道在IE 11和edge 13/14中不起作用

我正在使用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)

format datetime pipe internet-explorer-11 angular

42
推荐指数
4
解决办法
3万
查看次数

如何在iframe中解决两次或根本没有触发的IE11 localStorage事件?

我猜这是一个错误,但我还没有找到任何关于此的讨论.

众所周知,IE10将(针对规范)本地存储事件(即,在触发事件的同一全局执行上下文中),但IE11似乎更偏离规范(http://www.w3.org)/TR/webstorage /)当涉及到同域iframe时:

  • 如果iframe嵌入在触发存储事件的页面中,则该事件将在该iframe中触发TWICE.
  • 如果iframe嵌入在与触发存储事件的页面不同的页面中,则该事件将不会在该iframe中触发.
  • 如果事件是从iframe触发,则会在本地触发TWICE,在同一页面中嵌入的任何其他iframe触发TWICE,但在其他页面的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报告.

javascript iframe events local-storage internet-explorer-11

40
推荐指数
1
解决办法
4190
查看次数

我如何用webpack填充Promise?

我正在使用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 …

javascript polyfills internet-explorer-11 webpack

40
推荐指数
6
解决办法
4万
查看次数