问题
I use a jquery plugin for generating rich text editor. That editor generates an structure like this:
<div id="editor" ... >
...
<iframe>
<!DOCTYPE html>
<html>
<head>...</head>
<body>
//some important content here and I need to get them
</body>
</html>
</iframe>
</div>
Now, I want to get everything inside iframe's body as an String. I tested $("#editor").contents().find("body")
, but this return me an object, not string. Also tried $("#editor").contents().find("body").outerHTML
, but this return me undefined
. How can I do this? Please help me. Thank you for your time.
Edit:
I use SCEditor plugin. As Ramesh said, I used val()
method, but still return me (an empty string)
in the firebug console. Here is my code:
var instance = $("textarea").sceditor({
plugins: "bbcode",
style: "../../editor/minified/jquery.sceditor.default.min.css",
//some othe options
});
$("#save").click(function(){
console.log(instance.val());
});
As Ramesh suggests, I used $('textarea').sceditor('instance').val()
and it worked.
回答1:
In SCEditor to fetch the value of the rich text box, you have to use the .val method
val() Since: 1.3.5
Gets the current value of the editor.
This will return the filtered HTML from the WYSIWYG editor or the unfiltered contents of the source editor.
If using a plugin that filters the HTML like the BBCode plugin, this will return the filtered HTML or BBCode in the case of the BBCode plugin.
Syntax
var val = instance.val();
Return Type:
String
The filtered value of the editor
回答2:
jQuery objects are array like objects, and you can access the innerHTML
property by index (take a look at the console output):
console.log($('iframe')[0].innerHTML);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="editor">
<iframe>
<!DOCTYPE html>
<html>
<head></head>
<body>
some important content here and I need to get them
</body>
</html>
</iframe>
</div>
回答3:
Try :
var contain = document.getElementById('iframe').contentWindow.document.body.innerHTML ;
// Use contain where need .
Note : Work only if the iframe
source is in the same domain.
回答4:
I hope this helps:
// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()
// Gives you the inside wrapper as well
$('.classSelector')[0].innerHTML
来源:https://stackoverflow.com/questions/30116410/get-iframe-content-as-string