2012-04-12 6 views
0

Ich habe ein Benutzer-Skript, das alle dynamisch erzeugten Tags in Javascript einer Webseite verfolgt. Das Problem hier ist derzeit ich benutze Alarm-Box, um die Ausgabe anzuzeigen. Das Problem mit alert() ist, dass es sehr aufdringlich sein kann. Für jede Warnung müssen Sie auf OK klicken, um fortzufahren, was Ihre Zeit verschwendet. also möchte ich eine alternative methode wie protokolldateien anders als alarmbox. Wie kann ich das machen.Wie kann ich Informationen ohne Verwendung der Warnung in userscripts protokollieren

ich bin beschränkt console.log verwenden

+2

console.log()? –

+0

für console.log müssen wir zur inspectelement-> Konsole gehen, in der der Benutzer möglicherweise nicht bequem ist. Meine Anwendung sollte die Ausgabe anzeigen, wenn das Skript ausgeführt wird, ohne dass der Benutzer zur Anzeige der Ausgabe auf die Konsole gehen muss. Tut mir leid, ich habe vergessen, dies zu erwähnen – user1275375

+0

Möchten Sie Informationen nur für Sie (Entwickler/Helpdesk) protokollieren, oder muss ein normaler Benutzer in der Lage sein, es zu sehen? – Konerak

Antwort

2

Ich würde eine Art von Konsolenelement verwenden, das statisch auf Ihrer Seite platziert ist und bei Bedarf ausgeblendet werden kann. Siehe hierzu jsFiddle.

HTML:

<div id="console"> 
    <div class="header"> 
    Console 
    <span class="expand" onclick="toggleConsole();">+</span> 
    </div> 
    <div class="content" style="display: none;"></div> 
</div> 

CSS:

#console { 
    position: fixed; 
    right: 0px; 
    bottom: 0px; 
    width: 300px; 
    border: solid 1px #dddddd; 
} 
#console .header { 
    background-color: #ededed; 
    border: solid 1px #dddddd; 
} 
#console .header .expand { 
    padding-right: 5px; 
    float: right; 
    cursor: pointer; 
} 
#console .content { 
    overflow: auto; 
    background-color: #F9F9F0; 
    width: 100%; 
    height: 180px; 
} 

Javascript:

function log(text) { 
    var consoleContent = document.getElementById('console') 
     .getElementsByClassName('content')[0]; 
    var line = document.createElement('div'); 
    line.className = 'consoleLine'; 
    line.innerHTML = text; 
    consoleContent.appendChild(line); 
} 

function toggleConsole() { 
    var content = document.getElementById('console') 
     .getElementsByClassName('content')[0]; 
    if (content.style.display === "none") { 
     content.style.display = "block"; 
     document.getElementById('console') 
      .getElementsByClassName('expand')[0].innerHTML = "-"; 
    } else { 
     content.style.display = "none"; 
     document.getElementById('console') 
      .getElementsByClassName('expand')[0].innerHTML = "+"; 
    } 
} 

document.onload = function() { 
    document.getElementById('console') 
     .getElementsByClassName('expand')[0].onclick = toggleConsole; 
}; 

Verwenden log("some text"); zur Ausgabe an die Konsole!

+0

Dieser Ansatz ist die richtige Idee. [Setzen Sie den relevanten Code hier, in dieser Antwort] (http://meta.stackexchange.com/q/8231/148310), nicht nur auf einer Drittanbieter-Website, und ich werde es aufwerten. –

+0

@BrockAdams Hier gehts! – jb10210

+0

Danke! +1 –

1

Installieren Sie Firefox-Add-on zu Ihrem Mozilla (wenn Sie verwenden) und Sie die follwing Code:

console.log("test"+your_variable); 

So obigen Code werden alle Protokolle anzeigen in der Konsole. Wenn IE F12 drücken und Konsole überprüfen.

+0

Beachten Sie, dass Sie mit console.log mehrere Parameter übergeben können. Also statt 'console.log (" Mein Objekt ist: "+ myObj)' können Sie 'Konsole sagen.log ("Mein Objekt ist:", myObj) ', mit dem Sie das Objekt erweitern und seine Eigenschaften sehen können – bcoughlan

+0

Ja, wir können. Ich habe gerade erklärt, um eine Idee zu bekommen.Anyway danke :-) – Unknown

0

Erstellen Sie eine feste div entweder oben, unten oder Ecke Ihrer Seite mit der eingestellten Breite/Höhe und Überlauf automatisch, dann fügen Sie die Protokolleinträge ein.

1

Wenn ein normaler Benutzer es sehen kann, ist die Verwendung der Konsole nicht sehr benutzerfreundlich.

HTML: das DOM zu sein, und fügen Sie einfach die Nachrichten in diesen Raum mit Hilfe von JavaScript (oder jQuery) zu modifizieren

einen Platz auf Ihrer Webseite definieren (a <div> könnte sehr nützlich sein), wo Sie die Informationen wünschen:

<div id='logmessages'>Log messages:</div> 

JavaScript

function log(yourMsg) { 
document.getElementByID('logmessages').innerHTML() += yourMsg; 
} 

Es könnte freundlich sein, damit der Benutzer die div mit einem Knopf oder eine andere Art und Weise zeigen/verstecken.