Рамка перезаписывает кнопку? - PullRequest
       10

Рамка перезаписывает кнопку?

0 голосов
/ 06 сентября 2011
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 для IE . Но проблема в том, что он не работает для веб-страниц, имеющих фреймы.

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.Copied folder1 в папке webapps в каталоге tomcat.
3. Зарегистрированный мой файл .js для домена (т.е., localhost) в GreaseMonkey4IE
4.Введите URL-адрес из браузера ( IE8 ), т.е. http://localhost:8080/file1.html (кнопка показывает)
5.Введите URL-адрес из браузера, т. Е. http://localhost:8080/main.html (кнопка не отображается.)
Я полагаю, что когда на веб-странице есть фреймы, кнопка, добавленная на веб-страницу, перезаписывается фреймом. :(

Любая идея ???
Можно ли каким-либо образом отобразить мою кнопку ??
Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2011
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>');



Я попробовал приведенный выше код, и он работал для меня.
На этот раз я создал новый фрейм, а затем наложил на него свою кнопку и, наконец, добавил фрейм в качестве первого фрейма.
Код, указанный в вопросе, будет работать только в случае, если на веб-страницах нет фрейма.

0 голосов
/ 16 сентября 2011

Если вы можете использовать php, вам будет гораздо проще добавить глобальную кнопку, вызвав скрипт php include.Я переключился с использования JavaScript на php и обнаружил, что он устраняет множество проблем с браузерами, потому что кнопки добавляются во время рендеринга страницы, а не браузерами на стороне пользователя.затем просто поместите ваш необработанный HTML в файл с именем «demo.php», затем загрузите его в тот же файл и посмотрите, работает ли он:)

удачи!

...