框架会覆盖按钮吗?

时间:2011-09-06 05:27:54

标签: javascript html iframe greasemonkey frame

dv = document.createElement('div'); // create dynamically div tag
    dv.setAttribute('id', "lyr1"); // give id to it
    dv.className = "top"; // set the style classname
    // set the inner styling of the div tag
    dv.style.position = "absolute";
    // set the html content inside the div tag
    dv.innerHTML = "<input id='serialize01' type='button' value='Serialize' onClick='objSerializeDOM.createXML(),objSerializeDOM.disableSerialize()'/>";

    // finally add the div id to your form
    document.body.insertBefore(dv, document.body.firstChild);




我正在使用这个javascript代码在我的域的每个页面上放置一个按钮。我使用 GreaseMonkey4IE插件来实现这一点。但现在的问题是它不适用于有框架的网页。<登记/>

的file1.html

<html>
  <head>
   <title></title>
  </head>

  <frameset rows="50%,50%">
  <frame src="friends.html">

  </frameset>

</html>

main.html中

<html>
<head>
<title>Joe and Jackie's friends</title>
</head>

<frameset cols="25%,75%">
  <frame src="file1.html">
</frameset>

</html>

friends.html

<html>
<head>
<title></title>
</head>
<body bgcolor="#ccffff">

Joe's friend<br>
<b>Bill</b>

</body>
</html>


当我使用tomcat部署上述文件时,按钮没有显示。 部署:
1.我将上面的所有三个html文件复制并粘贴在一个名为say folder1的文件夹中 2.在tomcat目录下的webapps文件夹中复制folder1 3.在GreaseMonkey4IE中为域(即)localhost注册我的.js文件 4.从浏览器( IE8 )中获取网址,即http://localhost:8080/file1.html(按钮显示)
5.从浏览器中获取URL,即http://localhost:8080/main.html(按钮不显示。)
我猜每当网页中有框架时,网页上附加的按钮就会被框架覆盖。 :(

任何想法???
以任何可能的方式显示我的按钮?
非常感谢。

2 个答案:

答案 0 :(得分:0)

如果你可以使用php,你可能会发现通过调用php include脚本更容易添加全局按钮。我从使用JavaScript切换到php并发现它清理了所有浏览器问题,因为按钮是在页面渲染期间添加的,而不是由用户端的浏览器添加。

例如

<?php include('demo.php'); ?>

然后只需将原始html放在名为“demo.php”的文件中,然后将其上传到同一个文件中,看看它是否有效:)

祝你好运!

答案 1 :(得分:0)

var frameSet = document.getElementsByTagName("frameset");
    if (frameSet[0] != null && frameSet[0] != undefined) {
        var frame = document.createElement('FRAME');
        frame.id = "frame1";
        frame.name = "frame1";
        frame.src = "";
        frameSet[0].rows = "40," + frameSet[0].rows;
        frameSet[0].insertBefore(frame, frameSet[0].firstChild);
        var frame = document.frames[0];
        var currentDocument = frame.document;
        currentDocument.write('<html> <body> <INPUT TYPE="submit" name="btn101" value="Serialize" onClick=""/>  <input id="checkbox101" type="checkbox">IncludeValues</input><br> </body> </html>');



我尝试了上面的代码,它对我有用。
这次我创建了一个新的框架,然后把我的按钮放在上面,最后添加框架作为第一帧。
问题中提供的代码将仅在网页没有任何框架的情况下才能工作。