webForumDet fria alternativet

Problem med 2 koder

6 svar · 278 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20018 810 inlägg
#1

Jag använder en kod med innerHTML för att kunna skriva nyheter. Där i scriptet kan man även lägga in tabeller med denna kod:

function openWin(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

Nu vill jag använda:

function EmptyFolder(surl,sheight,swidth)
{
 var feets = "dialogWidth:" +swidth+"px;dialogHeight:" +sheight+"px;resizable:yes;scroll:no;center:yes;resizeable:no;status:no;help:no"
 window.showModalDialog(surl,null,feets);
}

Problemet blir i kod:

function addTable(rows, cols, border,cellp,cellsp,width,align) {
  var tableString = "<table";
  if (border) tableString += " border=" + border;
  if (cellp) tableString += " cellpadding=" + cellp;
  if (cellsp) tableString += " cellspacing=" + cellsp;
  if (width) tableString += " width=" + width;
  if (align) tableString += " align=" + align;
  tableString += ">";
[b]  var table = window.opener.message.document.createElement(tableString);
  var tbody = window.opener.message.document.createElement("tbody");
    for (var r = 0; r < rows; r++) {
      var tr = window.opener.message.document.createElement("tr");
        for (var c = 0; c < cols; c++) {
          var td = window.opener.message.document.createElement("td");
          td.innerText = " ";
          tr.appendChild(td);
        }
        tbody.appendChild(tr);
      }
    table.appendChild(tbody);
  window.opener.message.document.body.appendChild(table);
[/b]
}
function _CloseOnEsc() {
  if (event.keyCode == 27) { window.close(); return; }
}

function Init() {
  document.body.onkeypress = _CloseOnEsc;
}

Vid "window.opener" får jag "crashen"... det lilla jag vet med Javascript kan ju vara att den nya koden för att öppna fönstret är att det inte är ett "riktigt" nytt fönster ändå... frågan är hur man löser så att koden läggs in på orginal sidan...

dectgapMedlem sedan sep. 20021 542 inlägg
#2

Testa att ändra till

function addTable(rows, cols, border,cellp,cellsp,width,align) {
  var table = document.createElement(tableString);

  if (border) tableString.border      = border;
  if (cellp)  tableString.cellpadding = cellp;
  if (cellsp) tableString.cellspacing = cellsp;
  if (width)  tableString.width       = width;
  if (align)  tableString.align       =align;

  var tbody = document.createElement("tbody");
    for (var r = 0; r < rows; r++) {
      var tr = document.createElement("tr");
        for (var c = 0; c < cols; c++) {
          var td = document.createElement("td");
          td.appendChild( document.createTextNode(" ") );
          tr.appendChild(td);
        }
        tbody.appendChild(tr);
      }
    table.appendChild(tbody);

  window.opener.message.document.body.appendChild(table);

}
voigtann1Medlem sedan juni 20018 810 inlägg
#3

Får samma fel.. felmeddlenade 'window.opener.message' är null eller inte ett objekt

dectgapMedlem sedan sep. 20021 542 inlägg
#4

Vad är message för något?

Testa min kod, och ändra sista raden till

window.opener.document.body.appendChild(table);
voigtann1Medlem sedan juni 20018 810 inlägg
#5

message är ID på sidan:

              document.write ('<iframe src="IE_textbox.asp" id="message" width="100%" height="450" FRAMEBORDER="YES"></iframe>')
              frames.message.document.designMode = "On";

så den ska jag inte ändra.. provade ändå och det gick inte det heller..

dectgapMedlem sedan sep. 20021 542 inlägg
#6

Dina frames (inklusive iframes) kommer du åt genom window.frames.

Sätt name="message" på iframen, och ändra JavaScriptet till

window.opener.frames['message'].document.body.appendChild(table);

Fast det är möjligt att det blir fel om du håller på att mecka med designmode.

voigtann1Medlem sedan juni 20018 810 inlägg
#7

Den gamla koden dvs:

function openWin(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

men den nya fungera inte verken min eller den koden dectgap har skrivit..

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb