Autor Zpráva
donjirka
Profil
Ahoj, budu se asi ptát trochu hloupě, takže prosím za prominutí. Potřebuji aby při otevření stránky "test.htm" javascript zkontroloval jinou stránku "stat.xml" a vyhledal html tag (isConnected="1") nebo (isConnected="0") a třeba začervenil text "POZOR". Je tohle možné udělat javascriptem?
shaggy
Profil
donjirka:
zkontroloval jinou stránku "stat.xml" a vyhledal html tag
Tá "iná stránka" je očividne xml dokument. Prečo chceš v ňom vyhľadať "html tag", keď to nebude html dokument?

(isConnected="1") nebo (isConnected="0")
Takto elementy nevyzerajú, chceš hľadať atribúty v tom html dokumente? Alebo v xml dokumente? Alebo čo vlastne chceš?
donjirka
Profil
shaggy:
Ahoj, takhle nějak vypdá kód xsl dokumentu.

  <?xml version="1.0" encoding="utf-8" ?> 
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  <xsl:output method="html" encoding="windows-1250" /> 
- <xsl:template match="/">
- <html>
- <head>
- <!--  <meta http-equiv="Refresh" content="5" /> 
  --> 
  <title>Statistika připojení</title> 
  <link href="global.css" rel="stylesheet" type="text/css" /> 
  <script>function toggleDisplay(elemId) { elem = document.getElementById(elemId); elem.style.display = (elem.style.display == "none") ? "block" : "none"; }</script> 
  </head>
- <body alink="#D22D0F" vlink="#D22D0F" link="#D22D0F" rightmargin="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="COLOR: rgb(0,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
- <div align="center">
  <img src="statistika_pripojeni.bmp" /> 
  </div>
- <div style="margin:10">
- <font size="2" face="Arial, Helvetica, sans-serif">
  <a href="javascript:location.reload()">>> Obnovit <<</a> 
  <br /> 
  <br /> 
- <table border="0">
- <tr>
  <td>Počet SMS k odeslání:</td> 
- <td>
  <xsl:value-of select="SmsService/SmsToSendCount" /> 
  </td>
  </tr>
- <tr>
  <td>Počet odesílaných SMS:</td> 
- <td>
  <xsl:value-of select="SmsService/PendingSmsCount" /> 
  </td>
  </tr>
  </table>
  <br /> 
- <xsl:choose>
  <xsl:when test="count(SmsService/Connections/Connection) = 0">Nejsou žádná připojení.</xsl:when> 
- <xsl:otherwise>
- <table border="1">
- <tr>
- <td>
  <b>Připojení</b> 
  </td>
- <td align="right">
  <b>Počet odeslaných SMS</b> 
  </td>
- <td align="right">
  <b>Počet přijatých SMS</b> 
  </td>
  </tr>
- <xsl:for-each select="SmsService/Connections/Connection">
- <tr>
- <xsl:if test="@isConnected = 1">
  <xsl:attribute name="bgcolor">#CCFFCC</xsl:attribute> 
  </xsl:if>
- <td>
  <xsl:value-of select="@identifier" /> 
- <xsl:if test="@name">
  <br /> 
  <xsl:value-of select="@name" /> 
  </xsl:if>
  </td>
- <td align="right">
  <xsl:value-of select="@sentCount" /> 
  </td>
- <td align="right">
  <xsl:value-of select="@receivedCount" /> 
  </td>
  </tr>
  </xsl:for-each>
  </table>
  </xsl:otherwise>
  </xsl:choose>
  <br /> 
  <hr /> 
- <xsl:choose>
  <xsl:when test="count(SmsService/SendRequests/Period) = 0">Statistika požadavků k odeslání zpráv není k dispozici.</xsl:when> 
- <xsl:otherwise>
  <b>Statistika požadavků k odeslání zpráv</b> 
  <br /> 
  <br /> 
  <xsl:apply-templates select="SmsService/SendRequests/Period" /> 
  </xsl:otherwise>
  </xsl:choose>
  <br /> 
  </font>
  </div>
  </body>
  </html>

Takhle vypadá kód když zadám do prohlížeče localhost:stats.xml

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="stats.xsl" ?>
<SmsService>
    <SmsToSendCount>0</SmsToSendCount>
    <PendingSmsCount>0</PendingSmsCount>
    <Connections>
        <Connection identifier="EMI: 2660@62.141.2.130:5005" sentCount="925" receivedCount="19" isConnected="1"/>
    </Connections>

a já potřebuji vědět zda je možné zjistit javascriptem jestli je zařízení připojené, ale z jiné stránky např test.htm kde bude ten script.
peta
Profil
"Je tohle možné udělat javascriptem? "
Ano.

Co bych hledal?
google = javascript parse xml
http://www.roseindia.net/javascript/javascriptexamples/javascript-xml-parser.shtml - pomoci dom parseru
http://marcgrabanski.com/article/jquery-makes-parsing-xml-easy - pomoci jquey
http://www.codingforums.com/showthread.php?t=157235 - jiny priklad pomoci dom parseru

google = javascript ajax xml
http://www.tizag.com/ajaxTutorial/ajaxxmlhttprequest.php
<html>
<body>

<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
    var ajaxRequest;  // The variable that makes Ajax possible!
    
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.myForm.time.value = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "serverTime.php", true);
    ajaxRequest.send(null); 
}

//-->
</script>

<form name='myForm'>
Name: <input type='text' onChange="ajaxFunction();" name='username' /> <br />
Time: <input type='text' name='time' />
</form>
</body>
</html>
Ten priklad by mel fungovat tak, ze po vyplneni policka "Name" nacte textovy soubor ze serveru "serverTime.php" a zobrazi do policka Time. Tak misto
document.myForm.time.value = ajaxRequest.responseText; //responseText nebo responseXML
tam muzes dat
if (ajaxRequest.responseText.indexOf('isConnected="1"')>=0) {alert('obsahuje retezec Connections');}
donjirka
Profil
Děkuji, děkuji, děkuji!!!
To je přesně to, co jsem potřeboval. Jen ještě prosím o kontrolu, zda jsem tam neudělal prasečinu.
<html>
<body>
 
<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
    var ajaxRequest;  // The variable that makes Ajax possible!
    
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
    if (ajaxRequest.responseText.indexOf('isConnected="1"')>=0) {alert('OK');}
    if (ajaxRequest.responseText.indexOf('isConnected="0"')>=0) {alert('FAIL!');}
    }
    ajaxRequest.open("GET", "stats.xml", true);
    ajaxRequest.send(null); 
}

connect = ajaxFunction()

//-->
</script>



</body>
</html>
peta
Profil
donjirka: Nejlepe se kontroluje tak, ze, bud to funguje nebo to nefunguje.
_es
Profil
donjirka:
Jen ještě prosím o kontrolu
Uprav si funkciu v ajaxRequest.onreadystatechange.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: