在JavaScript中嵌入一个存储为字符串的微小.swf文件

时间:2015-06-27 04:08:15

标签: javascript security flash browser actionscript

有没有办法从字符串中嵌入.swf文件?

以下是该方案:

  1. 我有一个很小的.swf文件,我想用JavaScript动态加载到页面中。它不到1kb。
  2. 我可以将.swf文件的内容存储为JavaScript中的字符串,而不是进行网络往返
  3. 如果我在JavaScript中有这样的字符串,有没有办法将字符串注入到embed标记中,以便正常加载.swf文件?
  4. 此技术适用于存储图标的小.svg图像,并将它们直接嵌入到.css文件中。这可能是Flash吗?或者是否存在可能阻止此问题的安全问题?

1 个答案:

答案 0 :(得分:0)

在现代浏览器中,您不能,因为他们不允许通过<object> URI在<embed>data:标记中包含有效内容。

例如,这样的事情不起作用:

<html>
<body>
    <embed id="flash" width="200" height="200" type="application/x-shockwave-flash"></div>

    <script>
      var flashData = 'Q1dTBwAFAAB42oxUzU7bQBD+bK/tTQKBUsClQpV66IFDK9p7BQgB7SFO6nC3TLIEC//JcSk591BOHC2lUl+AN2ifoKeq175HTz2UznoTChISWNqf+ebbmdnZGZ9C+w3YP4FFDdv6JX01C/R1NJo2mis0067j+52gdxwMxPBFN4izSKyvv8Rls88k9ewHHuM/7A+i9CCIcBAMBXq5CAqxE2fFqJWehGI7CjP4p/BHiHtoBcUR8iDppzEOwyjyRK9ALylwGKVpjjTZSQqR7+ZBLOBnQS5I5Z/G6Xuy7I/UmuVpkRajTGAoRB9RmIhuMYoEDsQgTHbJKuL0ROynlYoWkfQVGoQJ/DxNC2x1u6Lo5Gm2GwWDIUodHKsLC190fDSkoK1W0HlTZsNeg57JwJ/p5TxsmSiu2zotTOeG90mD4ZQ1MIMzu09oWwnmRDBhP6EN0ZgjBSjBdMY6GtI1MzuVXDLaMvZGhvFNKy2SuMXMPTKnvBnKm+VQGMwib98JrexxuwqYezPSg/TbaCuSeSfJNqVtS7nQeM2bmK/br245aU8SoJCG15ZRW3zmnEuivoY/KLm0w+Rwy1lY4/HXjc/j8ZiAWVeearrykFQ3Zvbaim7KcTt9bkI3r9Hrcrjv2kpTd6eJrZL3AfIG2r1vUJHvkU3trmy26Umf/6UnQhUY+LxLguaoKGvnc5QhmFRO1ApGH79wVU8PbtQTFUodRqVhjC/QizRhX1wAU+ghQbaKgxmN69tprTC+eJPToHmqWiLVLMk3EVm1t9hZuocvdVwpGF/2nMn9HVUWxhqWqyZ7tHqVfmzSRXUizilAZ5ptSMXKawcbxh5tz56Sjdb+Vnfbb229dVEchcNr/52qn6s+lRl3Jn07ta9Xz2N4DjZJ/AcAAP//AwAfU9Bc';

      var flashObject = document.getElementById('flash');
      flashObject.src = 'data:application/x-shockwave-flash;base64,' + flashData;
    </script>
</body>
</html>