Difference between revisions of "LlLoadURL"

From Second Life Wiki
Jump to navigation Jump to search
m (changed example script to make caveats more clear)
m
Line 19: Line 19:
     touch_start(integer num_detected)
     touch_start(integer num_detected)
     {
     {
         key id = llDetectedKey(0);
         key     id             = llDetectedKey(0);
        integer avatarInSameSim = (llGetAgentSize(id) != ZERO_VECTOR);// TRUE or FALSE


         // if the touching avatar is in the same sim
         if (avatarInSameSim)
        if ( llGetAgentSize(id) )
         {
         {
             string info = "Visit the Second Life website!";
             string info = "Visit the Second Life website!";


             // must start with either "http://..." or "https://..."
             // must start with either "http://..." or "https://..."
             string url = "http://www.secondlife.com";
             string url = "http://www.secondlife.com/";


             llLoadURL(id, info, url);
             llLoadURL(id, info, url);
         }
         }
         else
         else
        {
             llInstantMessage(id, "I can only open a URL dialog on your screen if you're in my sim!");
             llInstantMessage(id, "I can only open a URL dialog on your screen if you're in my sim!");
        }
     }
     }
}
}

Revision as of 00:16, 9 October 2013

Summary

Function: llLoadURL( key avatar, string message, string url );

Shows dialog to avatar offering to load web page at url with message.
If user clicks yes, launches the page in their web browser, starting the browser if required.

• key avatar avatar UUID that is in the same region
• string message message to be displayed in the dialog box
• string url

The url is truncated to 255 characters and message is truncated to 254 characters.
The protocol for the url must be specified, currently only "https://" and "http://" are supported.
The URL should be RFC-1738 compliant with proper escapes.

Caveats

  • This function causes the script to sleep for 10.0 seconds.
  • This function should not be called from group deeded objects[1], it will silently fail.
  • This function silently fails for an avatar that has muted itself.[2]
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> default {

   touch_start(integer num_detected)
   {
       key     id              = llDetectedKey(0);
       integer avatarInSameSim = (llGetAgentSize(id) != ZERO_VECTOR);// TRUE or FALSE
       if (avatarInSameSim)
       {
           string info = "Visit the Second Life website!";
           // must start with either "http://..." or "https://..."
           string url = "http://www.secondlife.com/";
           llLoadURL(id, info, url);
       }
       else
       {
           llInstantMessage(id, "I can only open a URL dialog on your screen if you're in my sim!");
       }
   }

}

</lsl>

See Also

Articles

•  Limits SL limits and constrictions

Deep Notes

History

  • Introduced in version 1.6, no support for group deeded objects.
  • As of version ~1.9, support for group deeded objects was added (possibly by accident).
  • In the server upgrade released on 2007-03-14, support for group deeded objects was removed.
Search JIRA for related Issues

Tests

• llLoadURL Test

Footnotes

  1. ^ This was not always the case, see History for details
  2. ^ This can be extremely bewildering to debug because there's no easy way for a user to self-mute. Apparently it "just happens."

Signature

function void llLoadURL( key avatar, string message, string url );