मेरे पास एक स्क्रिप्ट है जो jQuery का उपयोग किसी पृष्ठ के संपूर्ण HTML स्रोत को लेने के लिए करता है और फिर वह डेटा उस फॉर्म में पोस्ट करता है जहां पोस्ट स्क्रिप्ट तब HTML को पार्स करने के लिए DOMDocument का उपयोग करता है और वह डेटा प्राप्त करता है जिसे मैं ढूंढ रहा हूं:
script.php
$ data = base64_decode ($ _ POST ['डेटा ']); $ Dom = नया DOMDocument (); $ Dom- & gt; loadHTML ($ डेटा); // डीआईडी के लिए एडीआईडी आईडी ढूंढें और डेटा अपलोड करें
यह है कि jQuery को स्रोत पृष्ठ पर लोड किया गया है:
jQuery (document.body) .append ("& lt; iframe id = 'somenewatab' नाम = 'somenewtab' / & gt;"); JQuery (document.body) .append ("& lt; form action = 'script.php' target = 'somenewatab' id = 'form_submit_data' विधि = 'पोस्ट' एनकटीप = 'मल्टीपार्ट / फॉर्म-डेटा' & gt; & lt; इनपुट प्रकार = 'छिपी' नाम = 'डेटा' आईडी = 'जमा_डेटा' & gt; & lt; इनपुट प्रकार = 'जमा करें' मान = '' & gt; & lt; / फ़ॉर्म & gt; "); JQuery ("# submit_data")। Val (बीटीओए (document.body.inner एचटीएमएल)); । JQuery ( "# form_submit_data") प्रस्तुत ();
मेरी समस्या यह है कि पृष्ठ पर कंसोल में जो jQuery है, यह कभी-कभी मुझे यह त्रुटि देता है और पृष्ठ बंद हो जाता है और डेटा को script.php पर पोस्ट नहीं किया जाता है:
Uncaught invalidCharacterError: 'विंडो' पर 'btoa' निष्पादित करने में विफल: एन्कोडेड होने वाली स्ट्रिंग में Latin1 श्रेणी के बाहर अक्षर हैं
मुझे पता नहीं है कि क्या करना है। आंतरिक HTML के साथ किसी तरह की एन्कोडिंग समस्या की तरह लगता है कोई भी सहायताकाफी प्रशंसनीय होगी।
ठीक है यह कुछ गंभीर बुरा व्यवहार है और इसमें कुछ गंभीर प्रदर्शन और सुरक्षा प्रभाव पड़ सकते हैं।
यह कहने के बाद, यह काम कर सकता है -
btoa (encodeuri (document.body) .innerHTML));
No comments:
Post a Comment