Reputation: 3841
I am working with the bing translate api and i have the following code
function translateali(){
document.onreadystatechange = function () {
if (document.readyState == 'complete') {
Microsoft.Translator.Widget.Translate('en', 'zh-cn', onProgress, onError, onComplete, onRestoreOriginal, 2000);
}
}
function onProgress(value) {}
function onError(error) {}
function onComplete() {}
function onRestoreOriginal() {}
}
translateali()
I am trying to bind the function to a onclick event which is why I wrapped it in a function but it doesnt do anything on click. However if I remove the function wrap like below it will work on page load
document.onreadystatechange = function () {
if (document.readyState == 'complete') {
Microsoft.Translator.Widget.Translate('en', 'zh-cn', onProgress, onError, onComplete, onRestoreOriginal, 2000);
}
}
function onProgress(value) {}
function onError(error) {}
function onComplete() {}
function onRestoreOriginal() {}
}
Upvotes: 2
Views: 74
Reputation: 3192
You are adding the listener, not the function.
Do the following:
function translateali() {
if (document.readyState == 'complete') {
Microsoft.Translator.Widget.Translate('en', 'zh-cn', onProgress, onError, onComplete, onRestoreOriginal, 2000);
}
}
So your button would look like this:
<button onclick="translateali()">Translate</button>
Upvotes: 4