I have a page that I have edited after load and what I want to do is get the pages current HTML and pass that off to a PHP script.
I first passed document.documentElement.innerHTML but that ended up including a bunch of computed style garbage at the top which I did not want. After googling around I found I could use ajax to get a copy of the current file on the server and then replace the edited part afterwards.
I can get the copy of the file using this:
var url = window.location.pathname;
  var filename = url.substring(url.lastIndexOf('/')+1);
  $.ajax({
    url: filename,
    async: false,   // asynchronous request? (synchronous requests are discouraged...)
    cache: false,   // with this, you can force the browser to not make cache of the retrieved data
    dataType: "text",  // jQuery will infer this, but you can set explicitly
    success: function( data, textStatus, jqXHR ) {
        origPage = data; // can be a global variable too...
        // process the content...
    }
});
Which works fine and gets me the html I expected and see when viewing the page in notepad.
The next step is what I cannot figure out. All I want to do is swap out the innerHTML of a div with an id of 'editor' with what the current value is, so I have tried this:
origPage.getElementById('editor').innerHTML = e.html;
But I get the error "TypeError: undefined is not a function". I must be doing something simple wrong I feel but I don't know the proper formatting to do this. I have tried the following variations:
alert($(origPage).getElementById('editor').innerHTML);
//Different attempt
var newHtml = $.parseHTML( origPage );
alert($(newHtml).getElementById('editor').innerHTML);
//Different attempt
alert($(origPage).html().getElementById('editor').innerHTML);
But I always get "TypeError: undefined is not a function" or "TypeError: Cannot read property 'getElementById' of undefined". How can I do this properly?
EDIT:
Complete page html below:
<!DOCTYPE html>
<html>
  <body>
    <div id="editor">
      <h1>This is editable.</h1>
      <p>Click me to start editing.</p>
    </div>
 
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script type="text/javascript" src="snapeditor.js"></script>
    <script type="text/javascript">
      var editor = new SnapEditor.InPlace("editor", {onSave: function (e) {
   var isSuccess = true;
   //var origPage = e.html;
   var origPage;
   var url = window.location.pathname;
   var filename = url.substring(url.lastIndexOf('/')+1);
   // Actually perform the save and update isSuccess.
   
   // Javascript:
   $.ajax({
        url: filename,
        async: false,   // asynchronous request? (synchronous requests are discouraged...)
        cache: false,   // with this, you can force the browser to not make cache of the retrieved data
        dataType: "text",  // jQuery will infer this, but you can set explicitly
        success: function( data, textStatus, jqXHR ) {
            origPage = data; // can be a global variable too...
            // process the content...
        }
    });
 //origPage shows expected html as this point
 
 //alert($(origPage).getElementById('editor').innerHTML);
 //alert($(origPage).html().getElementById('editor').innerHTML);
   $(origPage).getElementById('editor').innerHTML = e.html;//fails here
   alert(origPage);
   //alert(newHtml.getElementById('editor').innerHTML);
  $.ajax({
   data: {html: origPage, docName: 'example1.html'},
   url: 'savePage.php',
   method: 'POST', // or GET
   success: function(msg) {
    alert(msg);
    isSuccess = true;
   }
  });
   return isSuccess || "Error";
 },
 
 onUnsavedChanges: function (e) {
   if(confirm("Save changes?")) {
  if(e.api.execAction("save")){
   //location.reload();
  }
   } else {
  e.api.execAction("discard");
   }
 }});
    
    </script>
  </body>
</html> 
    