2015-03-03 21 views
1

我遇到了意想不到的问题。聚合物就地燃烧在IE11上,但不在Firefox或Chrome上

我有两页聚合物。两者都在IE11上运行得很好,完全没有问题(性能下降除外)。 现在,在Firefox和Chrome上,其中一个工作不正常,从未激发聚合物就绪,另一个工作正常。 如果有的话,人们会认为IE将是一个有问题的人。

与此相关的非火行为,唯一的聚合物分子本页显示FF或Chrome是主要的工具栏,并将其内部的东西,仅此而已。 我只是不知道下一步该怎么做。

以下是标题。第一个来自工作到处的页面,没有问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes" /> 
    <title>N-Adviser</title> 
    [... a bunch of element imports ...] 
    <script src="components/webcomponentsjs/webcomponents.js"></script> 
    <style shim-shadowdom> 
     [...some styling...] 
    </style> 
    <script src="http://code.jquery.com/jquery-1.7.js" type="text/javascript"></script> 
</head> 

而这里的坏

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="headPortal" runat="server"> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes" /> 
    <title>Portal</title> 
    <link rel="import" href="components/font-roboto/roboto.html" /> 
    <link rel="import" href="components/polymer/polymer.html" /> 
    [...a bunch of element imports...] 
    <link type="text/css" rel="stylesheet" href="Styles/LoginStyle.css" shim-shadowdom /> 
    <script src="components/webcomponentsjs/webcomponents.js"></script> 
    <style></style> 
    <script src="http://code.jquery.com/jquery-1.7.js" type="text/javascript"></script> 
</head> 

无法看到任何差别,除了一个事实,即他们中的一个外部文件,这不应该的问题进口的CSS。

他们都有自己的JavaScript代码,所有的HTML

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("docready"); 
    }); 
    window.addEventListener('polymer-ready', function (e) { 
     alert("polready"); 
    [...] 
</script> 

两个火document.ready后,但只有第一个触发聚合物就绪。有什么想法吗?

回答

2

webcomponents.js应该在html导入之前加载。尝试将该脚本标记移到所有导入之上(另请参阅https://www.polymer-project.org/docs/start/creatingelements.html)。这应该是全部。

我想我可以解释这种奇怪的行为。可能在导入文件的第一个例子中没有聚合物特定功能,第二个例子中有(注意Polymer!= web组件,webcomponents.js包含聚合物特定功能)。由于IE11本身不支持Web组件,它会跳过html导入标记(它不知道它们),然后聚合物的polyfill将在加载webcomponents.js并加载它们之后扫描文档(因为这是polyfill中的函数) 。

由于Chrome和FF确实有网络组件支持他们“看”的HTML进口都尚未加载的webcomponents.js和聚合物的功能之前。因此它不起作用。

+0

我以为我已经测试过导入的每一个订单,但又试着改变webcomponents.js。仍然不能正常工作,聚合物不能正常工作:/ 另外,我没有在我的问题上说过,但是工作的页面比另一个复杂得多,并且输入了所有“坏”的东西,还有其他许多人。我会记住你的解释,因为它可能是有用的,但不是在这种情况下。 – Iskalla 2015-03-04 07:48:57

+0

对不起,我的意思是你的解释非常有意义,仍然不能解决问题 – Iskalla 2015-03-04 07:56:59

相关问题