2011-03-18 24 views
5

के साथ बटन के क्लिक को अनुकरण करने का प्रयास करना मैं एक greasemonkey स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो ब्राउज़र के माध्यम से वस्तुओं के संग्रह के लिए सूची अद्यतन करता है। ऐसा करने के लिए मुझे कुछ रूपों को स्वतः भरना होगा और सबमिशन बटन पर माउसक्लिक अनुकरण करना होगा। मेरे पास फॉर्म भरने के फॉर्म हैं, लेकिन मैं बटन सबमिशन पर फंस गया हूं।greasemonkey

यहाँ बटन के लिए HTML मैं

<input type="submit" value="Find" style="" name="process-form" onclick="imhocaller.value='find-resources-page.left'; imhoaction.value='process-form';"> 

पर क्लिक मैं कुछ इस तरह कर रही करने की कोशिश की अनुकरण करने के लिए कोशिश कर रहा हूँ है, लेकिन किसी भी भाग्य नहीं किया है।

document.getElementsByName('process-form').submit(); 

यदि आवश्यक हो तो मैं अधिक कोड पोस्ट कर सकता हूं। धन्यवाद!

उत्तर

6

आप हालिया ब्राउज़र के माध्यम से एक कस्टम क्लिक ईवेंट भेज सकते हैं और आईई में onclick ईवेंट "आग" भेज सकते हैं। यह एक हालिया सुविधा है जो घटनाओं पर नियंत्रण का बहुत अधिक उपयोग करती है।

var button = document.getElementById("test"); 
button.onclick = function() 
{ 
    alert("event was dispatched on me");  
} 
if(document.createEvent) 
{ 
    var click = document.createEvent("MouseEvents"); 
    click.initMouseEvent("click", true, true, window, 
    0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    button = document.getElementById("test"); 
    button.dispatchEvent(click); 
    button.focus(); 
}else if(document.documentElement.fireEvent) 
{ 
    button = document.getElementById("test"); 
    button.fireEvent("onclick"); 
    button.focus(); 
} 

http://jsfiddle.net/ZWyp7/3/

ध्यान दें कि आप इसे भेजने से पहले घटना के लिए सुनने की जरूरत है।

+0

धन्यवाद! मुझे कल्पना है कि यह शायद इसके बारे में जाने का सबसे अच्छा तरीका है। –

1

इस दस्तावेज़ को आजमाएं .getElementsByName ('process-form') [0]। सबमिट करें();

यूपीडी: ठीक है! होना चाहिए .click() और नहीं .submit()

+0

नहीं, ऐसा लगता है कि यह भी काम नहीं करता है। यद्यपि आपकी प्रतिक्रिया के लिए धन्यवाद! –

5

यह पता लगाया गया। .submit() के बजाय .click() का उपयोग करने के लिए आवश्यक है। मुझे [0] को जॉर्जी के सुझाव के रूप में जोड़ने की भी आवश्यकता है।

document.getElementsByName('process-form')[0].click(); 
0

यहां आप एक इनपुट सबमिट करने का प्रयास करते हैं, तो आपको फॉर्म जमा करना होगा। तो यदि आप #myForm की आईडी के रूप में टैग करते हैं तो आपको यह करना होगा: document.getElementById('myForm').submit()

0

ऐसा करने का एक और तरीका JQuery में .trigger("submit") का उपयोग करना है।

संबंधित मुद्दे