开发者

Storing HTML in a Javascript Variable

开发者 https://www.devze.com 2023-03-13 14:27 出处:网络
I am currently coding a website that will allow a user to input data into a MySQL database using a WYSIWYG editor.The data stores into the database without a problem and I can query it using PHP and d

I am currently coding a website that will allow a user to input data into a MySQL database using a WYSIWYG editor. The data stores into the database without a problem and I can query it using PHP and display it on my webpage.

Up to this point everything is working ok until I try to move the HTML stored in the MySQL database into a javascript variable. I was able to get it working using CDATA[], but not for e开发者_StackOverflow中文版very browser. It works in Firefox, but not IE or Chrome. I am looking for a solution that will be able to work in all of the browsers. Any help would be greatly appreciated.


Since you're using PHP:

<script>
    var foo = <?php echo json_encode($htmlFromDatabase); ?>
</script>

The json_encode method, while normally used for encoding JSON objects, is also useful for converting other PHP variables (like strings) to their JavaScript equivalents.


"Safefy" your code, like this

str_replace( array("\r", "\r\n", "\n", "\t"), '', str_replace('"','\"',$str));

The above function clears linebreaks, and tabs so that your code appears in one line. If it breaks into more than one line, then it cannot be parsed as a string in JS and an error is thrown. Also we are escaping " to \", maybe there are more string replacements that need to take place, it depends in your content.

and inline it in javascript,

//<![CDATA[ 
    var myHtml = <?php echo '"'.$stuff.'"'; ?>;
//]]>

keep in mind the '"' part so that it appears like this var myHtml = "test";

0

精彩评论

暂无评论...
验证码 换一张
取 消