javascript Google翻译中div的Click或mouseup事件

hl0ma9xz  于 2023-11-15  发布在  Java
关注(0)|答案(3)|浏览(123)

我正在写一个JavaScript书签来为Google Translate创建一个快捷方式。例如,键入ESC或\ will clear the TextArea。现在我想添加一个快捷方式,当键入]时,将交换翻译语言;并且\将发音文本。
每个都 Package 在div#gt-lang-swapdiv#gt-src-listen中,但我不能在控制台中触发这些事件。
我试探着:

document.getElementById("gt-lang-swap").click()

字符串
但什么也没发生。这个也没用:

e = document.createEvent("MouseEvents")
e.initMouseEvent("mouseup", true, true, window, 1, 0, 0, 0, 0,
    false, false, false, false, 1, null)
document.getElementById('gt-src-listen').dispatchEvent(e)


有人有什么想法吗?

fnx2tebb

fnx2tebb1#

你试过onclick而不是click吗?

document.getElementById("gt-lang-swap").onclick=function(){

   console.log('clicked it');

   //Other stuff that should happen...
}

字符串
或者,尝试创建一个函数来触发事件(此函数取自here

function fireEvent(element,event){
    if (document.createEventObject){
       // dispatch for IE
       var evt = document.createEventObject();
       return element.fireEvent('on'+event,evt)
    }
    else{
       // dispatch for firefox + others
       var evt = document.createEvent("HTMLEvents");
       evt.initEvent(event, true, true ); // event type,bubbling,cancelable
       return !element.dispatchEvent(evt);
    }
}


接着是:

<input type="text" id="test">
<script>
   obj = document.getElementById("test");
   Event.observe(obj,'change',function(){alert('hi');});
   fireEvent(obj,'change');
</script>


应该可以
注意:正如在评论和链接的文章中提到的,这个答案有一个prototype库的先决条件.因此,它可能不是(经过讨论)这个问题的理想答案。
更多信息请参见here

9rnv2umw

9rnv2umw2#

我也无法在该按钮上触发单击事件,但我认为您不需要这样做,因为您可以修改URL,UI将相应更新:

var components = window.location.hash.substr(1).split('/');
window.location = '#' + components[1] + '/' + components[0] + '/' + components[2];
document.getElementById('source').select(); // optionally focus user back into source field

字符串
例如,如果URL是#es/en/hola%20amigo,则此代码交换前两个语言键,因此它变为#en/es/hola%20amigo
我想你甚至可以使用document.getElementById('result_box')来抓取翻译后的文本并将其放入源字段!
如果你更新你的扩展,请让我知道,我很乐意使用它。
编辑:刚意识到这个问题已经有将近两年的历史了。希望有人觉得它有用:)

qzlgjiam

qzlgjiam3#

有点晚,但是:如果你想放置一个监听器到任何元素,js必须使用addEventListener示例:

const whereverElement = document.getElement[wherever selector you prefer]
whereverElement.addEventListener('change', function (e) {
    // your code after the event happened here
}

字符串
你可以将元素绑定到任何你想监听的事件上:“change”,“click”,“mouseup”,“mousedown”,只要看看你需要什么。

相关问题