<div class="voc_container content-container">
<div class="voc_content">
    <h3 class="heading-small">Tell us what you think of this page</h3>
    <span class="voc_content_open">Take a short survey to give us your feedback</span>
    <span class="voc_content_close js-hidden">Close</span>
    <div class="voc_content_survey js-hidden">
    <script id="ss-embed-380173">
    (function (d, w) { 
    var s, ss;
    ss = d.createElement('script');
    ss.type = 'text/javascript'; 
    ss.async = true; 
    ss.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 
'www.xxxxxx.co.uk/s/r/embed.aspx?i=341674&c=380173';
};
    s = d.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ss, 
s); })(document, window);</script></div>
</div>
</div>**strong text**

Yang menghasilkan html sebagai

<iframe id="ss-embed-frame-380173" 
src="https://www.xxxxxxx.co.uk/s/YEXFX/" frameborder="0" style="border: 
0px currentColor; border-image: none; width: 100%; height: 400px; padding-
bottom: 4px;" onload="window.scrollTo(0, document.getElementById('ss-embed-
frame-380173').offsetTop);">&lt;a 
href="https://www.xxxxxxx.co.uk/s/YEXFX/"&gt;Please take our 
survey&lt;/a&gt;</iframe>

Saya mencoba menggunakan createelement untuk menghapus listner

  ss.removeEventListener("onload","window.scrollTo(0, 
  document.getElementById('ss-embed-frame-380173').offsetTop);");
 ss.onload=function(){} 

Untuk menghapus acara onload dari acara yang dibuat secara dinamis, tetapi tidak menghapusnya.

Adakah yang bisa membantu saya dalam memandu cara menghapus acara onload dari elemen iframe yang dihasilkan secara dinamis ???

onload="window.scrollTo(0, document.getElementById('ss-embed-
frame-380173').offsetTop);
2
Dinesh 10 Agustus 2017, 17:07

2 jawaban

Jawaban Terbaik

Anda dapat menggunakan MutationObserver untuk mengamati elemen yang ditambahkan ke document, panggil .removeAttribute("onload") pada elemen jika id atau pemilih lain cocok, .disconnect() instance pengamat

<!DOCTYPE html>
<html>
<head>
<script>
const config = {
  childList: true,
  subtree: true
};

const observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    mutation.addedNodes.forEach(function(node) {
      if (new RegExp("^ss-embed-frame").test(node.id)) {
        node.removeAttribute("onload");
        observer.disconnect();
        console.log(node.getAttribute("onload"), node.outerHTML);
      }
    })
  })
})

observer.observe(document.documentElement, config);
</script>
<script>
let iframe = `<iframe id="ss-embed-frame-380173" 
src="data:text/plain,abc" frameborder="0" style="border: 
0px currentColor; border-image: none; width: 100%; height: 400px; padding-
bottom: 4px;" onload="window.scrollTo(0, document.getElementById('ss-embed-
frame-380173').offsetTop);">&lt;a 
href="https://www.xxxxxxx.co.uk/s/YEXFX/"&gt;Please take our 
survey&lt;/a&gt;</iframe>`;

onload = function() {
  document.body.innerHTML += iframe
};
</script>
</head>
<body>
</body>
</html>
0
guest271314 10 Agustus 2017, 14:36

Anda dapat menggunakan jQuery untuk itu.

<script type="text/javascript">
    $("#ss-embed-frame-380173").removeAttr("onload");
</script>
0
VDWWD 10 Agustus 2017, 14:33