0

Ctrl+Enter を使用して Google+ の返信を送信したいのですが、送信ボタンに「クリック」イベントを送信すると機能しません。これはplus.google.comの chrome プラグインです。

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);
}

}

4

2 に答える 2

1

jQuery を使用することをお勧めします。

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

上記のコードは、コメントの1つが説明しているように、クリックしたいボタンのIDが「:2s.post」であると仮定して機能するはずです。

それがうまくいくことを願っています。jQuery を直接含めることができない場合は、次のような方法を試すことができます。

/*--- 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);

その場合、コードは実際には次のようになります。

function requiresjQuery($) { // put any code in here that requires jQuery; I actually recommend putting all of your code in here.
    $("#:2s.post").click();
}
于 2013-06-30T21:20:59.400 に答える
0

試すdocument.forms.yourForm.submit();

于 2012-04-26T07:19:51.500 に答える