Reposted (MSDN): Client script from XMLHTTP

zhaozj2021-02-16  57

Client script by XMLHTTP

Do you have problems or puzzles in the Internet or Windows-based development? At this time, you can help Dr. Gui (Drgui@microsoft.com); Dr. Gui will be two guest MSDN each month, answer your questions online. Although the busy work arrangement made him unable to reply to all the questions, he will answer more questions as much as possible. If you just select your question, then doctors will send you a GUI Dr. T-shirt!

Summary: The method of using the client script writing to create a web page is to include the format and script using the system's XMLHTTP object, XML file, and XSL style sheet.

Dr. Gui's Bits and Bytes

This is the title of Dr. Gui's network diary. Unfortunately, recently did not add more content to this column. It may be because there is too much rain in Seattle, or the weather is too cold, or the sun is too violent, or it is delayed by some things.

But you may like to read the Alice in Blibbetland story there. Or is an unlucky egg Iloo.

In short, if you have something to say, please post your comment on the comments on the same day. Or write an email for Dr. Gui ...

Now, answer your questions!

Create an XMLHTTP with JScript HTML

Dear Dr. Gui:

I have a question about XML. I published an ASP page via XMLHTTP and send data as HTML and execute Object.innerHTML on the DIV, Table cell, or any element.

The problem I encountered is, once, I created a form on the ASP server page and send the form with HTML back, so everything is normal. But I also want to verify the page, so I put a JScript page link to the text of the response HTML in the HTML I intend to send back. After doing this, the script can't run.

When I include the actual JScript SRC reference on the parent page, it can run normally. This is because JScript code is not loaded to the running library? Can you not return JScript code when responding to XMLHTTP POST and working properly? Can I instantly generate JScript functions for the page created?

I haven't tried to do this with another way: I will release XML data via XMLHTTP, and then send it back as XML data, and then use the XSL style sheet to convert. I guess, you can define the JScript function in that way. But this way seems too complicated. Do you have any suggestions or answers?

Thank you

Peter Sung

Dr. Gui Reply:

Yes, Peter, you can return Microsoft JScript code when responding to XMLHTTP Post / Get, and make the code to be executed. This is just like a piece of cake first, then eat it. Just like you guess, the best way to do this is to use the XSL style sheet; once you make all types of restore normal, this is easy. Dr. Gui can even provide a shortcomings. (Of course, there are other solutions. As long as the response contains the correct header and characters in the correct order, the browser will interpret response to respond to normal work. If necessary, you can use a string connection to generate a response.)

In the following example, Dr. GUI uses JScript to client code and VBScript (Microsoft Visual Basic scripting) in the ASP page. The adopted strategy is this: XML file only contains data (and reference to the style sheet). The XSL file contains all HTML formats that make up the full page (including a script located in the appropriate location). The ASP page mainly includes several calls to create an XMLHTTP object, load the XML file into the object (using implicit style sheet) and write the result HTML to the response stream. To try this method, do the simple steps shown below. Use Notepad to copy and paste and save all files in C: / INETPUB / WWWROOT.

1. Create a file containing the following XML text and named books.xml. Write down the reference to the Books.xsl style sheet. In addition, this file contains only data.

Ralls, kim midnight rain </ title> </ book> </ catalog ></p> <p>2. Then, create a file containing the following code and named BOOKS.XSL. This file is a style sheet referenced by Books.xml created in step 1. It contains the information necessary to correctly format the above XML file as an HTML page, even on the HTML page including a script.</p> <p><? XML Version = "1.0" encoding = "UTF-8"?> <xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/1999/xsl/transform> <XSL : Output method = "html" indent = "yes" /> <xsl: template match = "/"> <html> <head> <title> test </ title> </ head> <script language = "jscript"> Function test_onload () {var objxml = new activXObject ("msxml2.domdocument"); objxml.async = false; objxml.Load ("books.xml"); Alert (objxml.xml); objxml = null;} </ script > <body οnlοad = "TEST_ONLOAD ()> <table border =" 1 "> <xsl: for-each select =" catalog / book "> <tr> <td> <xsl: value-of select =" author " /> </ td> <td> <xsl: value-of select = "title" /> </ td> </ tr> </ xsl: for-energy> </ table> </ body> </ html> </ xsl: template> </ xsl: stylesheet> 3. Finally, create a file containing the following code and named BOOKS.ASP. This file is only used to create an XMLHTTP object, load an XML file for it, and write the result HTML to the response stream.</p> <p><% DIM SXRRESE.CONTENTTYPE = "text / xml" set SET = Server.createObject ("msxml2.xmlhttp.3.0") SXH.Open "get", "http://localhost/books.xml", falsesxh.send Response.write SX.RESPONSETEXT%></p> <p>4. Open your browser, locate it to http: //localhost/books.asp page. 5. You will see an alert that is displayed containing Books.xml data. This is done by the script in the XSL file. You will also see the formatted data in a table on the web page. This is done by the XSL code.</p> <p>Acknowledgments!</p> <p>Dr. Gui is here to thank Experts, including Vijaya Byri and its specializes in Maura Baughman. If Dr. Gui doesn't have help when answering questions, the problem will not be as satisfactory.</p> <p>Ask Dr. Gui</p> <p>The famous problem solving expert "Dr. Gui" is very happy to provide encyclopedia knowledge in Internet and Windows development, so that developers from all over the world will benefit from it. If you have a problem that you can't resolve, please send your questions to drgui@microsoft.com. Although the busy work arrangement made him unable to reply to all the questions, he will answer more questions as much as possible. If you just select your question, then doctors will send you a GUI Dr. T-shirt! (Please note: The problem may be organized to ensure the correct syntax is correct, the logic is clear.) Does Dr. Gui are not enough? Please read the GUI .NET Dr. column articles!</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-16716.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="16716" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.055</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'vS97G9dtQ_2F8TKRe2JHXDuoVAC8OB80_2FfQg2v2Lxv4f6ZZl_2BLXtLF4_2FGacgDE2Jr_2B5QCSlIQM5HDaEY1zXU15FQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>