Change to content of IFRAME. Inject script into IFRAME from another IFRAME

和自甴很熟 提交于 2020-01-17 01:21:21

问题


I am working on a script to get and change the content of an IFrame, by accessing a variable and a function defined in it, through a button and a Javascript script created in another IFrame. The script works fine, but what I would like to do is instead of text been injected in the IFRAME 1 I would like to inject a script, something like:

<script src="map.js" type="text/javascript"></script>

I have tried with injecting IMG and also works:

<button onclick="f_ifr2('<img height=\'410\' src=\'images\/footer.png\' width=\'995\' \/>')">

.... but I would like to be able to inject a js file something like:

<button onclick="f_ifr2('<script src=\'map.js\' type=\'text\/javascript\'><\/script>')">

but it doesn't work as something to do with the closing or opening tags < >

Could somebody tell me how to rewrite the:

<button onclick="f_ifr2('<script src=\'map.js\' type=\'text\/javascript\'><\/script>')">

to avoid the error? Many thanks!

The whole script below:

Code ifr1.htm

<html>
<head>
<title>Page for IFrame 1</title>
<script type="text/javascript"><!--
// Stores a value in the variable "var_ifr1", that will be accessed in the second iframe
var var_ifr1 = '<b>Value of the variable from iframe 1</b>';

// Function that replace the content of the DIV "div_ifr1" with the value of its parameter
// It will be called from iframe 2
function f_ifr1(txt) {
  document.getElementById('div_ifr1').innerHTML = txt;
}
//--></script>
</head>
<body>
IFRAME 1
Content in BODY
<div id="div_ifr1">Div content of the iframe 1</div>
</body>
</html>

Code ifr2.htm

<html>
<head></head>
<title>Page for IFrame 2</title>
<body>
IFRAME 2<br>

<script type="text/javascript"><!--
function f_ifr2(txt) {
  // get the BODY content of the iframe 1, "ifr1"
  var c_ifr1 = parent.ifr1.document.body.innerHTML;

   alert(c_ifr1);          // Displays the content in an alert window

  // gets the value of the variable "var_ifr1", defined in the iframe 1, "ifr1"
  var from_ifr1 = parent.ifr1.var_ifr1;
  // Displays in a tag in this iframe the value of the variable defined in iframe 1
  document.getElementById('d_ifr2').innerHTML = from_ifr1;

  // Calls the function "f_ifr1",  defined in iframe 1
  parent.ifr1.f_ifr1(txt);
}
//--></script>
<div id="d_ifr2"> </div>
<button onclick="f_ifr2('<b>The text changed from iframe 2</b>')">Action iframe</button>
</body>
</html>

Code main.html

<html>
<head><title>Main Page</title></head>
<body>
<h3>Main Page</h3>
<h4>First iframe</h4>
<iframe src="ifr1.htm" id="ifr1" name="ifr1"></iframe>

<br><h4>Second iframe</h4>
<iframe src="ifr2.htm" id="ifr2" name="ifr2"></iframe>
</body>
</html>

来源:https://stackoverflow.com/questions/25033294/change-to-content-of-iframe-inject-script-into-iframe-from-another-iframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!