Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>i've found a pure JS function that fix it in all browsers!</p> <p>there you go:</p> <pre><code>function fix_flash() { // loop through every embed tag on the site var embeds = document.getElementsByTagName('embed'); for (i = 0; i &lt; embeds.length; i++) { embed = embeds[i]; var new_embed; // everything but Firefox &amp; Konqueror if (embed.outerHTML) { var html = embed.outerHTML; // replace an existing wmode parameter if (html.match(/wmode\s*=\s*('|")[a-zA-Z]+('|")/i)) new_embed = html.replace(/wmode\s*=\s*('|")window('|")/i, "wmode='transparent'"); // add a new wmode parameter else new_embed = html.replace(/&lt;embed\s/i, "&lt;embed wmode='transparent' "); // replace the old embed object with the fixed version embed.insertAdjacentHTML('beforeBegin', new_embed); embed.parentNode.removeChild(embed); } else { // cloneNode is buggy in some versions of Safari &amp; Opera, but works fine in FF new_embed = embed.cloneNode(true); if (!new_embed.getAttribute('wmode') || new_embed.getAttribute('wmode').toLowerCase() == 'window') new_embed.setAttribute('wmode', 'transparent'); embed.parentNode.replaceChild(new_embed, embed); } } // loop through every object tag on the site var objects = document.getElementsByTagName('object'); for (i = 0; i &lt; objects.length; i++) { object = objects[i]; var new_object; // object is an IE specific tag so we can use outerHTML here if (object.outerHTML) { var html = object.outerHTML; // replace an existing wmode parameter if (html.match(/&lt;param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")[a-zA-Z]+('|")\s*\/?\&gt;/i)) new_object = html.replace(/&lt;param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")window('|")\s*\/?\&gt;/i, "&lt;param name='wmode' value='transparent' /&gt;"); // add a new wmode parameter else new_object = html.replace(/&lt;\/object\&gt;/i, "&lt;param name='wmode' value='transparent' /&gt;\n&lt;/object&gt;"); // loop through each of the param tags var children = object.childNodes; for (j = 0; j &lt; children.length; j++) { try { if (children[j] != null) { var theName = children[j].getAttribute('name'); if (theName != null &amp;&amp; theName.match(/flashvars/i)) { new_object = new_object.replace(/&lt;param\s+name\s*=\s*('|")flashvars('|")\s+value\s*=\s*('|")[^'"]*('|")\s*\/?\&gt;/i, "&lt;param name='flashvars' value='" + children[j].getAttribute('value') + "' /&gt;"); } } } catch (err) { } } // replace the old embed object with the fixed versiony object.insertAdjacentHTML('beforeBegin', new_object); object.parentNode.removeChild(object); } } } </code></pre> <p>now you can just run in when the page loads with jQuery:</p> <pre><code> $(document).ready(function () { fix_flash(); }); </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload