Home javascript Alternative to echo (PHP), but in Javascript

Alternative to echo (PHP), but in Javascript

Author

Date

Category

It is necessary to output information from the variable. How can I do this using javascript?

UPD . Let’s put the question a little differently: How to display on the page the address of the page the visitor is currently on using only Javascript.


Answer 1, authority 100%

Here’s a function, haven’t tested it, but should work.

function echo () {
    //! No description available for echo. @ php.js developers: Please update the function summary text file.
    //
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/echo // + original by: Philip Peterson
    // + improved by: echo is bad
    // + improved by: Nate
    // + revised by: Der Simon (http://innerdom.sourceforge.net/)
    // + improved by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Eugene Bulkin (http://doubleaw.com/)
    // + input by: JB
    // + improved by: Brett Zamir (http://brett-zamir.me)
    // + bugfixed by: Brett Zamir (http://brett-zamir.me)
    // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: EdorFaus
    // + improved by: Brett Zamir (http://brett-zamir.me)
    //% note 1: If browsers start to support DOM Level 3 Load and Save (parsing / serializing),
    //% note 1: we wouldn't need any such long code (even most of the code below). See
    //% note 1: link below for a cross-browser implementation in JavaScript. HTML5 might //% note 1: possibly support DOMParser, but that is not presently a standard.
    //% note 2: Although innerHTML is widely used and may become standard as of HTML5, it is also not ideal for
//% note 2: use with a temporary holder before appending to the DOM (as is our last resort below),
    //% note 2: since it may not work in an XML context
    //% note 3: Using innerHTML to directly add to the BODY is very dangerous because it will //% note 3: break all pre-existing references to HTMLElements.
    // * example 1: echo ('& lt; div & gt; & lt; p & gt; abc & lt; / p & gt; & lt; p & gt; abc & lt; / p & gt; & lt; / div & gt;');
    // * returns 1: undefined
    // Fix: This function really needs to allow non-XHTML input (unless in true XHTML mode) as in jQuery
    var arg = '', argc = arguments.length,
      argv = arguments,
      i = 0,
      holder, win = this.window,
      d = win.document, ns_xhtml = 'http://www.w3.org/1999/xhtml',
      ns_xul = 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'; // If we're in a XUL context
    var stringToDOM = function (str, parent, ns, container) {
      var extraNSs = '';
      if (ns === ns_xul) {extraNSs = 'xmlns: html = "' + ns_xhtml + '"';
      }
      var stringContainer = '& lt;' + container + 'xmlns = "' + ns + '"' + extraNSs + '& gt;' + str + '& lt; /' + container + '& gt;';
      var dils = win.DOMImplementationLS,
        dp = win.DOMParser, ax = win.ActiveXObject;
      if (dils & amp; & amp; dils.createLSInput & amp; & amp; dils.createLSParser) {
        // Follows the DOM 3 Load and Save standard, but not
        // implemented in browsers at present; HTML5 is to standardize on innerHTML, but not for XML (though
// possibly will also standardize with DOMParser); in the meantime, to ensure fullest browser support, could // attach http://svn2.assembla.com/svn/brettz9/DOMToString/DOM3.js (see http://svn2.assembla.com/svn/brettz9/DOMToString /DOM3.xhtml for a simple test file)
        var lsInput = dils.createLSInput ();
        // If we're in XHTML, we'll try to allow the XHTML namespace to be available by default
        lsInput.stringData = stringContainer;
        var lsParser = dils.createLSParser (1, null); // synchronous, no schema type return lsParser.parse (lsInput) .firstChild;
      } else if (dp) {
        // If we're in XHTML, we'll try to allow the XHTML namespace to be available by default
        try {
          var fc = new dp (). parseFromString (stringContainer, 'text / xml'); if (fc & amp; & amp; fc.documentElement & amp; & amp; fc.documentElement.localName! == 'parsererror' & amp; & amp; fc.documentElement.namespaceURI! == 'http://www.mozilla.org/newlayout/ xml / parsererror.xml ') {
            return fc.documentElement.firstChild;
          }
          // If there's a parsing error, we just continue on
        } catch (e) {// If there's a parsing error, we just continue on
        }
      } else if (ax) {// We don't bother with a holder in Explorer as it doesn't support namespaces
        var axo = new ax ('MSXML2.DOMDocument');
        axo.loadXML (str); return axo.documentElement;
      }
  / * else if (win.XMLHttpRequest) {// Supposed to work in older Safari
        var req = new win.XMLHttpRequest;
req.open ('GET', 'data: application / xml; charset = utf-8,' + encodeURIComponent (str), false); if (req.overrideMimeType) {
          req.overrideMimeType ('application / xml');
        }
        req.send (null);
        return req.responseXML; } * /
      // Document fragment did not work with innerHTML, so we create a temporary element holder
      // If we're in XHTML, we'll try to allow the XHTML namespace to be available by default
      // if (d.createElementNS & amp; & amp; (d.contentType & amp; & amp; d.contentType! == 'text / html')) {// Don't create namespaced elements if we're being served as HTML ( currently only Mozilla supports this detection in true XHTML-supporting browsers, but Safari and Opera should work with the above DOMParser anyways, and IE doesn't support createElementNS anyways)
      if (d.createElementNS & amp; & amp; // Browser supports the method (d.documentElement.namespaceURI || // We can use if the document is using a namespace
      d.documentElement.nodeName.toLowerCase ()! == 'html' || // We know it's not HTML4 or less, if the tag is not HTML (even if the root namespace is null)
      (d.contentType & amp; & amp; d.contentType! == 'text / html') // We know it's not regular HTML4 or less if this is Mozilla (only browser supporting the attribute) and the content type is something other than text / html; other HTML5 roots (like svg) still have a namespace
      )) {// Don't create namespaced elements if we're being served as HTML (currently only Mozilla supports this detection in true XHTML-supporting browsers, but Safari and Opera should work with the above DOMParser anyways, and IE doesn't support createElementNS anyways); last test is for the sake of being in a pure XML document
holder = d.createElementNS (ns, container); } else {
        holder = d.createElement (container); // Document fragment did not work with innerHTML
      }
      holder.innerHTML = str;
      while (holder.firstChild) {parent.appendChild (holder.firstChild);
      }
      return false;
      // throw 'Your browser does not support DOM parsing as required by echo ()';
    };
    var ieFix = function (node) {
      if (node.nodeType === 1) {
        var newNode = d.createElement (node.nodeName); var i, len;
        if (node.attributes & amp; & amp; node.attributes.length & gt; 0) {
          for (i = 0, len = node.attributes.length; i & lt; len; i ++) {
            newNode.setAttribute (node.attributes [i] .nodeName, node.getAttribute (node.attributes [i] .nodeName));
          }}
        if (node.childNodes & amp; & amp; node.childNodes.length & gt; 0) {
          for (i = 0, len = node.childNodes.length; i & lt; len; i ++) {
            newNode.appendChild (ieFix (node.childNodes [i]));
          }}
        return newNode;
      } else {
        return d.createTextNode (node.nodeValue);
      }};
    var replacer = function (s, m1, m2) {
      // We assume for now that embedded variables do not have dollar sign; to add a dollar sign, you currently must use {$$ var} (We might change this, however.)
      // Doesn't cover all cases yet: see http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double if (m1! == '\\' ) {
        return m1 + eval (m2);
      } else {
        return s;
      }};
    this.php_js = this.php_js || {};
var phpjs = this.php_js,
      ini = phpjs.ini, obs = phpjs.obs;
    for (i = 0; i & lt; argc; i ++) {
      arg = argv [i];
      if (ini & amp; & amp; ini ['phpjs.echo_embedded_vars']) {
        arg = arg.replace (/ (.?) \ {? \ $ (\ w *? \} | \ w *) / g, replacer); }
      if (! phpjs.flushing & amp; & amp; obs & amp; & amp; obs.length) {// If flushing we output, but otherwise presence of a buffer means caching output
        obs [obs.length - 1] .buffer + = arg;
        continue; }
      if (d.appendChild) {
        if (d.body) {
          if (win.navigator.appName === 'Microsoft Internet Explorer') {// We unfortunately cannot use feature detection, since this is an IE bug with cloneNode nodes being appended d.body.appendChild (stringToDOM (ieFix (arg)) );
          } else {
            var unappendedLeft = stringToDOM (arg, d.body, ns_xhtml, 'div'). cloneNode (true); // We will not actually append the div tag (just using for providing XHTML namespace by default)
            if (unappendedLeft) {
              d.body.appendChild (unappendedLeft); }
          }
        } else {
          d.documentElement.appendChild (stringToDOM (arg, d.documentElement, ns_xul, 'description')); // We will not actually append the description tag (just using for providing XUL namespace by default)
        }} else if (d.write) {
        d.write (arg);
      }
  / * else {// This could recurse if we ever add print!
        print (arg); } * /
    }
  }

Answer 2, authority 100%

document.write ("Current URL" + document.URL)

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions