![](/img/trans.png)
[英]How to redraw SVG after change from javascript (Internet Explorer and Edge)
[英]How to call a Javascript function from a Typescript class that works with Internet Explorer 11 and Microsoft Edge?
In an angular 7 project i need to use a javascript function from a Typescript class, where i'm using declare var getFormData: any; 使用 function getFomData,它在 Chrome 和 Firefox 中工作正常,但在 Internet Explorer 11 和 Edge 42 中我收到錯誤“ReferenceError:'getFormData'未定義
我只是將 function 稱為getFormData(this.formElement);
我發現可行的唯一方法是當我將整個 javascript 復制到 typescript class 中時。
tsconfig.json
"compilerOptions": {
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",`
"lib": ["es2017", "dom"],
從 angular.json 中提取:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"project_name": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"tsConfig": "src/tsconfig.app.json",
"polyfills": "src/polyfills.ts",
"assets": ["src/assets", "src/favicon.ico", "src/manifest.json"],
"scripts": [
"node_modules/chart.js/dist/Chart.bundle.min.js",
"src/assets/libs/jquery.js",
"src/assets/libs/getformdata.js",
"src/assets/libs/flatpickr.js"
]
},
"configurations": {
"dev": {
"optimization": false,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
},
....
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "project_name:build"
},
"configurations": {
"dev": {
"browserTarget": "project_name:build:dev"
},
提前致謝!!
您可以在.ts
文件中調用 javascript function,如下所示:
將.js
文件放在assets/javascript
文件夾中。 例如,我在這里使用demo.js
:
export function test1(){ console.log('Calling test 1 function'); }
在assets/javascript
文件夾中創建demo.d.ts
文件。 .js
文件和.d.ts
文件應該具有相同的名稱:
export declare function test1();
在component.ts
文件中調用javascript function:
import { test1 } from '../assets/javascript/demo'; ... export class AppComponent { constructor() { test1(); } }
我在 Chrome、Edge 和 IE 中對其進行了測試,並且可以正常工作。 你可以在這里找到整個演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.