出错:对象不支持属性或方法“assign”。

59

我在我的WordPress网站上使用了这个jquery弹出插件从这个链接。它在所有浏览器上都可以正常工作,但在IE11上报以下错误。

输入图像描述


2
@JohnDoe,你能提供一个可行的例子吗? - Dekel
2
@pragya,请放上你的一些代码,这样我们才能判断问题出在哪里…可能是dom元素找不到的问题,或者页面上有相同id的多个元素。 - Haresh Vidja
11个回答

0

IE11的React解决方案

关于shramee的回答,他说了这样一句话:

@JohnDoe ,来自你的评论,你想在 node/react 栈中实现这个。这与原始问题非常不同,但你可以使用es6-object-assign,一个ES6的Object.assign()“polyfill”:

这个polyfill已经更新了,现在可以用一些不同的方法来完成:

  • 在您的根目录下的package.json文件中,将es6-object-assign添加为依赖项(执行命令行中的npm i):

    "dependencies": {
        "es6-object-assign": "^1.0.2",
        "react": "^16.8.6",
        ...
      },
    

    或者直接运行:npm i --save es6-object-assign

  • 在node环境中使用:

    require('es6-object-assign').polyfill();
    // 自动填充相同版本
    require('es6-object-assign/auto');
    
  • 在您的index.html中使用,只需添加自动填充JS文件引用即可(如果您在<body>中调用Object.assign(),则可以将其添加到<head>元素的末尾)。

    1. 直接从node_modules调用:

      <script src="location_of_node_modules/es6-object-assign/dist/object-assign-auto.min.js"></script>
      

      location_of_node_modules取决于您的项目结构(当index.html在子目录中时,您可能需要:../node_modules)。

    2. 但是,这可能对您没有起作用(由于node_modules文件夹访问问题,例如您正在使用create-react-app)。如果是这样,请从dist/ node_modules文件夹中复制JS文件到public/文件夹,然后:

      <script src="%PUBLIC_URL%/object-assign-auto.js"></script>
      

      您可能希望使用非压缩文件并添加其他自定义填充(例如startsWith)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接