【问题标题】:flash as3 passing string with special characters (like newlines `\n`) from JS to flashflash as3 将带有特殊字符(如换行符`\n`)的字符串从 JS 传递到 flash
【发布时间】:2013-12-26 21:44:05
【问题描述】:

我遇到过以下问题:

例如我们有 html

<div id="123">123\n456</div>

当我将 div 的内容作为 innerHTML 时

var a = document.getElementById('123').innerHTML

并将其传递给 Flash 对象

top.flashObj.FlashFunction(a);

然后它不把它当作123\n456,而是

123
456

我的意思是a var 带有真正的换行符。

我应该怎么做才能避免使用特殊字符 JS>SWF 传递变量,反之亦然?

【问题讨论】:

    标签: javascript actionscript-3 flash


    【解决方案1】:

    我通常会改为 \\n 然后对其运行正则表达式替换:

    myString.replace( /\\\n/g, "\n" );
    

    【讨论】:

    • 这不是我描述的问题。 div 内容中有真正的123\n456backslashn 字符),它作为newline(一个字符而不是两个字符)传递到 swf
    • 好的,让我确定我得到了这个,a 参数中的值是123\n456 但在闪存端,字符串参数中没有\n 正确吗?
    • 是的。你的建议是对的。我已经按照您所说的尝试过-已发送到瑞士法郎a.replace(/\\/,'\\\\');,但a字符串中有\'(字面意思是反斜杠和单引号)之类的东西,flash将其作为\\'(两个反斜杠和一个引号)发回.
    • 我唯一的猜测是将所有 \ 替换为 bAckSlaSh 当 js>swf 和 bAckSlaSh 当从 swf 回到 js 时替换为 \
    • 老实说,无论如何你决定这样做最好的方法是格式化成要替换的东西。否则没有真正好的解决方法。
    猜你喜欢
    • 2016-10-26
    • 2012-09-07
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多