简体   繁体   中英

Use ctrl+enter to submit google+ reply but does not work sending a 'click' event to the submit button

I want to use Ctrl+Enter to submit the Google+ reply but it does not work when I send a 'Click' event to the submit button. This is a chrome plugin for plus.google.com .

document.onkeydown=function(e){
if(e.ctrlKey&&e.keyCode==13){
    div_id=document.activeElement.id;
    div_id=div_id.substr(0,3);
    editorid=div_id.substr(0,2)+String.fromCharCode(div_id.charCodeAt(2)-1);
    postbuttonid=editorid+'.post';
    console.log(postbuttonid);
    postbutton=document.getElementById(postbuttonid);
    evt=document.createEvent("MouseEvents"); 
    evt.initEvent("click", true, true); 
    postbutton.dispatchEvent(evt);
}

}

I suggest you use jQuery:

jQuery("#:2s.post").click();

The above code should work assuming that, as one of your comments describes, the button you want to click has the id ":2s.post".

I hope that works for you. If you're unable to include jQuery directly, you could try something like:

/*--- Create a proper unsafeWindow object on browsers where it doesn't exist
    (Chrome, mainly).
    Chrome now defines unsafeWindow, but does not give it the same access to
    a page's javascript that a properly unsafe, unsafeWindow has.
    This code remedies that.
*/

if (typeof unsafeWindow === "undefined") {
    unsafeWindow    = ( function () {
        var dummyElem   = document.createElement('p');
        dummyElem.setAttribute ('onclick', 'return window;');
        return dummyElem.onclick ();
    } ) ();
    if(typeof unsafeWindow === "undefined") {
        unsafeWindow = window;
    }
}
// END PROPER unsafeWindow


var script = unsafeWindow.document.createElement("SCRIPT");
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js';
    script.type = 'text/javascript';
    unsafeWindow.document.getElementsByTagName("head")[0].appendChild(script);
    script.addEventListener('load', function(){ 
        jQ = unsafeWindow['jQuery'];
        $ = jQ.noConflict(true); // keep jQuery local so you don't accidentally override/overwrite any variables
        requiresjQuery($);
    }, false);

In which case, your code would actually look more like:

function requiresjQuery($) { // put any code in here that requires jQuery; I actually recommend putting all of your code in here.
    $("#:2s.post").click();
}

尝试document.forms.yourForm.submit();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM