<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Alternatively if you don't want to do the whole ajax thing, you can
    do something similar just checking the text of the body:<br>
    <br>
    <tt><script><br>
          var page_check;<br>
          <br>
          var nMilliseconds = 60*1000; // frequency of server check in
      milliseconds<br>
          var checkServerStatus = function () {<br>
              if ( /Text that you are searching
      for/.test(document.body.innerHTML) ) {<br>
                  // simple javascript alert box<br>
                  alert("Text you want to display when the search is
      found");<br>
      <br>
                  // an actual new window/tab<br>
                  var
      text_window=window.open("","","width=200,height=100");<br>
                  text_window.document.write("<p>Text you want to
      display when the search is found</p>");<br>
                  text_window.focus();<br>
      <br>
                  clearInterval(page_check);<br>
              }<br>
          };<br>
          page_check = setInterval( checkServerStatus, nMilliseconds );<br>
      </script></tt><br>
    <br>
    That doesn't require jQuery either.<br>
    <br>
    I put in examples of opening an actual window or just showing an
    alert box.<br>
    <br>
    <div class="moz-cite-prefix">On 2012-10-10 11:40 AM, Mark Jubenville
      wrote:<br>
    </div>
    <blockquote cite="mid:50759700.1050900@gmail.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      I'd use setInerval instead of setTimeout though:<br>
      <br>
      <tt>var page_check;</tt><tt><br>
      </tt><tt><br>
      </tt><tt>var nMilliseconds = 60*1000; // frequency of server check
        in milliseconds</tt><tt><br>
      </tt><tt> var checkServerStatus = function () {</tt><tt><br>
      </tt><tt>   $.ajax({ url: "/path/to/your/log/file/script"
        }).done(function</tt><tt><br>
      </tt><tt> (jqXHR, textStatus) {</tt><tt><br>
      </tt><tt>     if (/a regexp matching text in your log
        file/.test(jqXHR.responseText))</tt><tt> {<br>
      </tt><tt>       $.facybox("The text you wish the user to see in
        the popup dialogue.");<br>
              clearInterval(page_check);<br>
            }</tt><tt><br>
      </tt><tt>   });</tt><tt><br>
      </tt><tt> };</tt><tt><br>
      </tt><tt> page_check = setInterval( checkServerStatus,
        nMilliseconds );</tt><br>
      <br>
      <br>
      <br>
      <div class="moz-cite-prefix">On 2012-10-10 11:27 AM, Antonio Sun
        wrote:<br>
      </div>
      <blockquote
cite="mid:CAKczvCYP+V2FVzXjh90SbXpBhDZ0dsP+4+uuQt9xgs+-9FrvtA@mail.gmail.com"
        type="cite">Thanks a lot Shaun. 
        <div><br>
        </div>
        <div>That sure will pave my way to the right direction. </div>
        <div>I'll start playing. </div>
        <div><br>
        </div>
        <div>Thanks everyone!<br>
          <br>
          <div class="gmail_quote">On Wed, Oct 10, 2012 at 10:27 AM,
            Shaun Fryer <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:sfryer@sourcery.ca" target="_blank">sfryer@sourcery.ca</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi
              Antonio,<br>
              <br>
              That makes sense. Unfortunately it's a little beyond the
              scope of a<br>
              simple email to provide a complete solution for your
              situation.<br>
              However, you might try something like the following.<br>
              <br>
              You'll need two things. #1. an ajax function of some kind.
              Given that<br>
              you aren't interested in learning JS, I'd recommend using
              a<br>
              cross-browser abstraction library which has an ajax
              method, such as<br>
              jQuery. #2. You'll need a popup dialogue of some kind.
              There are<br>
              plenty to choose from. For the purposes of providing an
              example, I've<br>
              [arbitrarily] chosen the facybox jQuery plugin. I have no
              direct<br>
              experience with it, but the API seems simple enough, so it
              should work<br>
              fine.<br>
              <br>
              Add a script tag including the jQuery library, followed by
              one for the<br>
              plugin for your popup ( <a moz-do-not-send="true"
                href="http://bitbonsai.com/facybox/" target="_blank">http://bitbonsai.com/facybox/</a>
              ). Now in a<br>
              separate script tag below this, add code similar to that
              below<br>
              (modified accordingly).<br>
              <br>
              var nMilliseconds = 60*1000; // frequency of server check
              in milliseconds<br>
              var checkServerStatus = function () {<br>
                $.ajax({ url: "/path/to/your/log/file/script"
              }).done(function<br>
              (jqXHR, textStatus) {<br>
                  if (/a regexp matching text in your log
              file/.test(jqXHR.responseText))<br>
                    $.facybox("The text you wish the user to see in the
              popup dialogue.");<br>
                  else setTimeout( checkServerStatus, nMilliseconds );<br>
                });<br>
              };<br>
              setTimeout( checkServerStatus, nMilliseconds );<br>
              <br>
              The above is just pseudo-code, but it *should* work with
              very little<br>
              modification, assuming you're using the indicated JS
              libraries.<br>
              <br>
              Hope this helps.<br>
              <div class="im HOEnZb">--<br>
                Shaun Fryer<br>
----------------------------------------------------------<br>
                perl -e 'print chr for map{$_+=22}($ARGV[0])=~/(\d\d)/g'
                \<br>
                       
                52959394107588899482799210587992861082757785799222<br>
----------------------------------------------------------<br>
                <br>
                <br>
              </div>
              <div class="HOEnZb">
                <div class="h5">On Wed, Oct 10, 2012 at 9:51 AM, Antonio
                  Sun <<a moz-do-not-send="true"
                    href="mailto:antoniosun@lavabit.com">antoniosun@lavabit.com</a>>

                  wrote:<br>
                  > Hi, thanks a lot for your offer Shaun.<br>
                  ><br>
                  > That was actually what I thought the solution to
                  be. Now let's forget what I<br>
                  > said and focus on what I need to accomplish.<br>
                  ><br>
                  > Yes, I totally control the page content. The
                  situation is,<br>
                  ><br>
                  > I am designing a web portal that can launch
                  back-end server side processes.<br>
                  > The problem is that the process can finish in
                  seconds, or it might need<br>
                  > hours to finish, depending how much work the
                  process has. So my design is to<br>
                  > spawn a sub process, and capture all its outputs
                  to a log text file, then<br>
                  > return immediately to the user, in a web notice
                  page saying, your job is<br>
                  > queued; here is the log url; please check
                  manually if is finished or not.<br>
                  ><br>
                  > But my all my fellow coworkers said they don't
                  want to check themselves.<br>
                  > Instead, they want my web portal to check for
                  them. I couldn't think of any<br>
                  > solution from the server side to capture the end
                  of the sub process, then<br>
                  > informed the already submitted web notice page.
                  Hence, I'm turning to the<br>
                  > javascript front-end for solutions. Because I
                  have zero knowledge of<br>
                  > Javascript, it might not be feasible at all. But
                  I know the best solution is<br>
                  > that if I can have a desktop notification
                  mechanism just like gmail does,<br>
                  > that should solve the problem, because my sub
                  process control task does know<br>
                  > when the sub process ends, and write a specific
                  ending tag to the end of the<br>
                  > log file, which is what I was planning to
                  watch/search for. Every page of my<br>
                  > portal does include a standard master template
                  (except the log text file),<br>
                  > so if I can send a signal at the end of my sub
                  process and capture that by<br>
                  > the master template, then pop up a javascript
                  window, that will do as well.<br>
                  ><br>
                  > Sorry for the lengthy gibberish, hope that you
                  can figure something out from<br>
                  > it.<br>
                  ><br>
                  > Thanks<br>
                  ><br>
                  > On Wed, Oct 10, 2012 at 3:01 AM, Shaun Fryer <<a
                    moz-do-not-send="true"
                    href="mailto:sfryer@sourcery.ca">sfryer@sourcery.ca</a>>

                  wrote:<br>
                  >><br>
                  >> Hi Antonio,<br>
                  >><br>
                  >> I might be able to help you, but first I need
                  to know a bit more<br>
                  >> detail about what you're trying to do. When
                  you say watch for certain<br>
                  >> keywords from a webpage, what do you mean
                  exactly? If you mean<br>
                  >> searching through a static html document
                  looking for a give word or<br>
                  >> words, that's fairly trivial. However, if you
                  can add javascript to<br>
                  >> the page in question, then you probably
                  control the page, and<br>
                  >> therefore should already know it's content.
                  So question is, why would<br>
                  >> you need front-end code in JavaScript to do
                  it? If you mean doing an<br>
                  >> HTTP request from within a web-page, or even
                  a Cross Origin request,<br>
                  >> in order to receive info from a 3rd-party
                  website, then things could<br>
                  >> become considerably more complicated.<br>
                  >><br>
                  >> Cheers,<br>
                  >> --<br>
                  >> Shaun Fryer<br>
                  >>
                  ----------------------------------------------------------<br>
                  >> perl -e 'print chr for
                  map{$_+=22}($ARGV[0])=~/(\d\d)/g' \<br>
                  >>        
                  52959394107588899482799210587992861082757785799222<br>
                  >>
                  ----------------------------------------------------------<br>
                  >><br>
                  >><br>
                  >> On Tue, Oct 9, 2012 at 5:48 PM, Antonio Sun
                  <<a moz-do-not-send="true"
                    href="mailto:antoniosun@lavabit.com">antoniosun@lavabit.com</a>><br>
                  >> wrote:<br>
                  >> > Hi,<br>
                  >> ><br>
                  >> > I know it's kind of OT, but since we
                  have a lot of web experts here, let<br>
                  >> > me<br>
                  >> > try my luck here first.<br>
                  >> ><br>
                  >> > I have zero knowledge of Javascript, I'm
                  wondering if you could give me<br>
                  >> > a<br>
                  >> > big favor to show me how to watch for
                  certain keyword from a web page<br>
                  >> > using<br>
                  >> > Javascript.<br>
                  >> ><br>
                  >> > Basically, I have a slow updating web
                  page, and I need a client side<br>
                  >> > Javascript to watch for a specific
                  keyword in that page and pop up an<br>
                  >> > window<br>
                  >> > if the keyword is found.<br>
                  >> ><br>
                  >> > As I have zero knowledge of Javascript,
                  I hope that your answer is as<br>
                  >> > complete as possible.<br>
                  >> ><br>
                  >> > Thanks a lot in advance<br>
                  >> ><br>
                  >> > Antonio<br>
                  >> ><br>
                  >> ><br>
                  >> >
                  _______________________________________________<br>
                  >> > toronto-pm mailing list<br>
                  >> > <a moz-do-not-send="true"
                    href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a><br>
                  >> > <a moz-do-not-send="true"
                    href="http://mail.pm.org/mailman/listinfo/toronto-pm"
                    target="_blank">http://mail.pm.org/mailman/listinfo/toronto-pm</a><br>
                  >> ><br>
                  ><br>
                  ><br>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
toronto-pm mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://mail.pm.org/mailman/listinfo/toronto-pm">http://mail.pm.org/mailman/listinfo/toronto-pm</a>
</pre>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="72">-- 

Mark Jubenville | <a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:ioncache@gmail.com">ioncache@gmail.com</a></pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 

Mark Jubenville | <a class="moz-txt-link-abbreviated" href="mailto:ioncache@gmail.com">ioncache@gmail.com</a></pre>
  </body>
</html>