chrome-state-manager.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. (function() {
  2. var _isRoot = false;
  3. var _isIndex = false;
  4. var _routedEventObject = null;
  5. function init() {
  6. if (document.location.href.substring(0, 7) != 'file://') return;
  7. // this is true if this is the root item
  8. var _isRoot = (window == parent);
  9. var mainFrame = document.getElementById('mainFrame');
  10. _isIndex = mainFrame && true; // one way to cast it to a bool
  11. var eventDiv = document.getElementById('axureEventReceiverDiv');
  12. if (eventDiv) {
  13. _routedEventObject = document.createEvent('Event');
  14. _routedEventObject.initEvent('axureMessageReceiverEvent', true, true);
  15. } else {
  16. return;
  17. }
  18. if (_isRoot && _isIndex) {
  19. chrome.extension.sendRequest({
  20. message : "showIcon"
  21. });
  22. } else if (_isRoot) {
  23. chrome.extension.sendRequest({
  24. message : "hideIcon"
  25. });
  26. }
  27. if (_isIndex) { initIndex(); }
  28. var eventSenderDiv = document.getElementById('axureEventSenderDiv');
  29. eventSenderDiv.addEventListener('axureMessageSenderEvent', handleSentEvent);
  30. sendMessage(JSON.stringify({
  31. message:'initialize'
  32. }));
  33. }
  34. init();
  35. function handleSentEvent() {
  36. var eventSenderDiv = document.getElementById('axureEventSenderDiv');
  37. var message = eventSenderDiv.innerText;
  38. chrome.extension.sendRequest({
  39. message : "routeEvent",
  40. data : message
  41. });
  42. }
  43. function initIndex() {
  44. document.body.setAttribute('pluginDetected', 'true');
  45. }
  46. function initPage() {}
  47. function sendMessage(requestJson) {
  48. var axureEventDiv = document.getElementById('axureEventReceiverDiv');
  49. if (axureEventDiv) {
  50. axureEventDiv.innerText = requestJson;
  51. axureEventDiv.dispatchEvent(_routedEventObject);
  52. }
  53. }
  54. function onRequest(request, sender, callback) {
  55. if (request.message == 'routeEvent') {
  56. sendMessage(request.data);
  57. }
  58. };
  59. chrome.extension.onRequest.addListener(onRequest);
  60. })();