2013-05-19 4 views
6

मैं एक कोड बनाने की कोशिश कर रहा हूं जो एक विशिष्ट पाठ की खोज करेगा, और यदि यह पाया जाता है तो यह एक बटन पर क्लिक करेगा। इसे लगातार स्ट्रिंग की जांच करने की आवश्यकता है, हालांकि मैं ऐसा होने के लिए एक रास्ता खोजने के लिए संघर्ष कर रहा हूं। मैं कोडिंग के लिए एक पूर्ण नौसिखिया हूँ, इसलिए किसी भी मदद की सराहना की है! :)जावास्क्रिप्ट में किसी दस्तावेज़ में स्ट्रिंग के लिए मैं चेक कैसे लूप करूं?

var findMe = [ 
    //Test 
    'Hello!', 
]; 

function findText() { 
    var text = document.querySelector('div[id=BtnText]'); 

    for (var i = 0; i < findMe.length; i++) { 
     if (BtnText.match(findMe[i])) { 
      var btnDo = document.querySelector('input[type="submit"][value="Click!"]'); 
      if (btnDo) { 
       btnDo.click(); 
      } 
     } 
    } 
} 
+0

आपको क्या त्रुटि मिलती है? – Saturnix

+0

क्या आप सरणी में शब्दों के लिए विंडो खोजने की कोशिश कर रहे हैं? – adeneo

+0

कोई विशेष त्रुटि नहीं, यह तब होता है जब टेक्स्ट आ जाता है बटन क्लिक नहीं किया जाता है। मुझे पता है कि बटन क्लिकिंग स्क्रिप्ट ठीक है, मैं बस सोच रहा हूं कि मैंने फ़ंक्शन में कहीं गड़बड़ कर ली है। – user2399007

उत्तर

0

नियमित अभिव्यक्ति:

(new RegExp('word')).test(str) 

(new RegExp(/word/)).test(str) 

indexOf:

str.indexOf('word') !== -1 

खोज() एक निर्धारित मूल्य, या रेगुलर एक्सप्रेशन के लिए एक स्ट्रिंग खोजता है, और की स्थिति रिटर्न मैच।

var n=str.search("word"); 

या

var n-str.search(/word/); 
    if(n>0) 
    {} 

window.find साथ()

if (window.find("word", true)){} 
//code 
while(window.find("word",true){ 
//code 
} 
+0

और खिड़की। क्या यह वैश्विक दायरे में किसी एक लाइन के साथ किसी भी रेगेक्स के बिना करता है? – adeneo

+0

मैंने पोस्ट संपादित किया – argentum47

1

बस एक छोटा सा संपादन आपके कोड।

मुझे लगता है कि आपके पास ऐसा HTML है? आप लगातार जाँच करना चाहते हैं

<div id="BtnText">Hello!</div><input type="submit" value="Click!"> 

आप होगा इस

var findMe = [ 
    //Test 
    'Hello!', 
]; 

function findText() { 
    var div = document.querySelector('div[id=BtnText]'); 

    for (var i = 0; i < findMe.length; i++) { 
     if (div.innerText.indexOf(findMe[i]) !== -1) {    
      var btnDo = document.querySelector('input[type="submit"][value="Click!"]'); 
      if (btnDo) { 
       if (typeof btnDo.onclick == "function") { 
        btnDo.onclick.apply(elem); 
       } 
      } 
      return true; 
     } 
    } 
    return false; 
} 

करने के लिए अपने कोड बदलने के लिए। मैं setInterval का उपयोग करने की सलाह देते हैं।

var interval = setInterval(function() { 
    var textFound = findText(); 
    if(textFound) { 
     clearInterval(interval); 
    } 
},50); 
0

आपको लगातार जांच करने की आवश्यकता क्यों है? आपको एक और दृष्टिकोण प्राप्त करना चाहिए ... या आपकी स्क्रिप्ट क्रोम द्वारा अवरुद्ध की जाएगी, उदाहरण के लिए, यदि यह पृष्ठ को जिम्मेदार बनाता है। आप टाइमआउट के लिए जा सकते हैं, क्योंकि टेलर हैक्स ने सुझाव दिया है ... या बस अपने खोज टेक्स्ट को कॉल पर ऑन चेंज इवेंट से जुड़ा हुआ है।

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