У меня в индексе есть тег скрипта ниже. html:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
У меня также есть отдельная служба транслитерации, в которой я вызываю метод initializeTransliteration () из соответствующий метод AfterViewInit () компонента.
import { Injectable, OnInit } from "@angular/core";
import { Router } from "@angular/router";
declare var google:any;
@Injectable()
export class Transliterate {
constructor(private currentRouter:Router){}
private async(){
return new Promise(
resolve=>{
resolve( google.load("elements", "1", {packages:"transliteration", callback: ()=>{this.onLoad(this.currentRouter)} }) );
}
)
}
initializeTransliteration(){
this.async().then(
value =>{
console.log(value);
}
);
}
private onLoad(router: Router){
var options = {
sourceLanguage: 'en',
destinationLanguage: ['ta'],
shortcutKey: 'ctrl+g',
transliterationEnabled: true
};
var opt_options ={
adjustElementStyle : false,
adjustElementDirection: true
}
var nodesArray:Array<Object> = Array.prototype.slice.call(document.querySelectorAll("textarea#tamilTransliterate"));
var control = new google.elements.transliteration.TransliterationControl(options);
control.makeTransliteratable(['tamilTransliterate'], opt_options);
control.c.qc.t13n.c[3].c.d.keyup[0].ia.F.p = 'https://www.google.com';
}
}
Когда я загружаю приложение в первый раз после очистки кеша, я получаю следующее сообщение об ошибке на консоли, и я не могу транслитерировать текстовая область.
loading elements other than inputtools with the jsapi loader is unsupported
Однако, когда я обновляю sh браузер несколько раз, эта проблема решается, и я могу транслитерировать текст, который я набираю в текстовой области. .
Это началось после того, как я обновился до angular 9.
URL-адрес веб-сайта: https://www.yaavarumkelir.com - в строке поиска на верхней панели навигации включена транслитерация.
Кто-нибудь может мне помочь в решении этой проблемы?
Изменить: после дальнейшего исследования я обнаружил, что вызов jsapi иногда получает 302 при загрузке fre sh, и именно поэтому это происходит. Почему вызов google jsapi дает 302? Это из-за того, что мой код делает что-то неправильно? Может кто-нибудь посоветовать, как cI снова вызвать jsapi, если 302 возвращается в первый раз?