2016-04-06 8 views
-3

Есть ли что-то в коде страницы, которая может помешать javascript-букмарклету взаимодействовать со страницей? Я написал букмарклет jQuery для заполнения сложной формы, около 250 полей и проверенных частей формы в jsFiddle успешно. К сожалению, когда я собрал все это и попытался на самом деле, я ничего не получил.jQuery bookmarklet not working

Я запускаю это в Firefox с Firebug и не получаю какой-либо вывод Firebug, чтобы указать мне в правильном направлении. Я могу только догадываться, что в коде фактической страницы может быть что-то, не позволяющее внешнему javascript взаимодействовать с этой загруженной страницей? Возможно ли это? Есть ли способ обойти это? Есть ли способ проверить и подтвердить это?

Заранее благодарим за любую помощь.

Моя догадка заключается в том, что помехи находятся в этом верхнем разделе javascript и различных сценариях, которые получены на фактической странице.

<head><script type="text/javascript">/* <![CDATA[ */_cf_loadingtexthtml="<img alt=' ' src='/CFIDE/scripts/ajax/resources/cf/images/loading.gif'/>"; 
_cf_contextpath=""; 
_cf_ajaxscriptsrc="/CFIDE/scripts/ajax"; 
_cf_jsonprefix='//'; 
_cf_websocket_port=8575; 
_cf_flash_policy_port=1243; 
_cf_clientid='D4C17F4DE745D7B2C3079E2B52AED452';/* ]]> */</script><script type="text/javascript" src="/CFIDE/scripts/ajax/messages/cfmessage.js"></script> 
<script type="text/javascript" src="/CFIDE/scripts/ajax/package/cfajax.js"></script> 

    <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
    <meta http-equiv="expires" content="0" /> 
    <meta http-equiv="cache-control" content="no-cache"/> 
    <meta http-equiv="pragma" content="no-cache"/> 



     <link rel="shortcut icon" href="/am/images/favicon.ico" /> 

      <link href="/am/assets/css/app.min.css?ux-theme&refresh=25%2DMar%2D16%2004%3A54%3A42" rel="stylesheet"/> 


     <!-- --> 
      <link rel="stylesheet" type="text/css" href="/am/css/grid.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="screen"> 
     <!-- --> 
      <link rel="stylesheet" type="text/css" href="/am/css/page.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="screen"> 
      <link rel="stylesheet" type="text/css" href="/am/css/page.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="print"> 
      <link rel="stylesheet" type="text/css" href="/am/css/print-page.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="print"> 
      <link rel="stylesheet" type="text/css" href="/am/css/print-grid.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="print"> 

      <link rel="stylesheet" type="text/css" href="/am/css/ux/css/validationEngine.jquery.css?refresh=25%2DMar%2D16%2004%3A54%3A42" media="screen"> 





     <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
     <script type="text/javascript">window.jQuery || document.write('<script src="/AM/assets/js/lib/jquery-1.7.1.min.js"><\/script>')</script> 

     <script type="text/javascript"> 
      (function ($) { 
       var ua = navigator.userAgent.toLowerCase(); 
       if (ua.indexOf("compatible") < 0 && /(trident)(?:.*? rv ([\w.]+)|)/.exec(ua)){ 
        $.browser['msie'] = true; 
        delete $.browser['mozilla']; 
       } 
      })(jQuery); 
     </script> 




     <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script> 
     <script>window.jQuery.ui || document.write('<script src="/AM/assets/js/lib/jquery-ui-1.8.21.min.js"><\/script>')</script> 


     <script language="JavaScript" src="/AM/assets/js/ux/ux.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script language="JavaScript" src="/AM/assets/js/ux/ux.ajax.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script language="JavaScript" src="/AM/assets/js/ux/ux.validationEngine.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 


     <script src="/AM/assets/js/lib/angular/angular-1.1.5/angular.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/AM/assets/js/lib/angular-cookies/angular-cookies-1.0.6/angular-cookies.min.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/AM/assets/js/lib/moment-2.0.0.min.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/AM/assets/js/lib/angular-strap/angular-strap-0.7.5/dist/angular-strap.min.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 

     <script src="/EHR/scripts/resources/cost-center/cost-center-resource.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/resources/rest-resource.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/resources/episode-frequency/episode-frequency.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/resources/icd/icd-resource.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/resources/list-frequency/list-frequency-resource.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/resources/list-interval/list-interval-resource.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 

     <script src="/EHR/scripts/services/clinic/clinic-setting-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/services/user/clinic-user-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/services/user/user-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/services/util/form-util-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/services/util/util-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/services/ux/ux-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 

     <script src="/EHR/scripts/directives/kinnser/blur/blur.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/focus/focus.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/icd-lookup/icd-lookup.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/infinate-scroll/infinate-scroll.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/oss-grid/oss-grid.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/oss-modal/oss-modal.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/oss-modal/oss-modal-service.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script src="/EHR/scripts/directives/kinnser/ux/date-picker.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 

     <script src="/AM/scripts/amng-app/app.js"></script> 

     <script language="javascript"> 

$(document).ready(function(){ 

var useTooltipContainer; 
var $tooltipMaster; 

if (useTooltipContainer == true) { 
$tooltipMaster = $("#tooltipContainer .tooltipMaster"); 
} 
else { 
$tooltipMaster = $(".tooltipMaster"); 
} 


$tooltipMaster.live("mouseover",function(e){ 
    $(this).easytooltip($(this).attr("id"),$(this).attr("id")+"_tooltip"); 
    e.stopPropagation(); 
})  

}); 


jQuery.fn.easytooltip=function(elemID,id,options){ 
var Config={event:'mousemove'}; 
if(options){ 
    jQuery.extend(Config,options); 
}; 

if(!document.getElementById('tool_tip_action_' + id)){ 
    $("body").append('<div id="tool_tip_action_'+id+'">&nbsp;</div>'); 
    $("#tool_tip_action_"+id).css({ 
     "background-color":Config.backgroundcolor, 
     border:Config.border, 
     color:Config.color, 
     position:"absolute", 
     "z-index":"1001", 
     "display":"none" 
    }); 
} 

function brwstester(){ 
    return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body; 
} 

$("#"+id).hide(); 
$(this).bind(Config.event,function(e){ 
    if(screen.width<=(e.pageX+40+$("#tool_tip_action_"+id).width())){ 
     var lfts=e.pageX-$("#tool_tip_action_"+id).width()-20; 
    } 
    else { 
     var lfts=e.pageX+20; 
    } 

    if(brwstester().scrollTop<e.pageY-20-$("#tool_tip_action_"+id).height() ){ 
     var tps=(e.pageY-$("#tool_tip_action_"+id).height()-20); 
    } 
    else{ 
     var tps=e.pageY+20; 
    } 

    $("#tool_tip_action_"+id).html($("#"+id).html()).css({ 
     "left":lfts, 
     "top":tps 
    }).show(); 
}); 

$("#tool_tip_action_"+id).bind("touchstart",function(){ 
    $("#tool_tip_action_"+id).hide().css({ 
     "left":0, 
     "top":0 
    }); 
    return false; 
}); 

$(this).bind("mouseout",function(){ 
    $("#tool_tip_action_"+id).hide().css({ 
     "left":0, 
     "top":0 
    }); 
}); 
} 
</script> 

     <script type="text/javascript" src="/AM/assets/js/lib/jquery.tinysort-1.0.2.js"></script> 
     <script type="text/javascript" src="/AM/assets/js/lib/sortable.js"></script> 



     <script type="text/javascript" src="/AM/assets/js/lib/paginator-1.0.Beta.js"></script> 

     <script language="JavaScript" src="/am/menubar/menubarJS.js?refresh=25%2DMar%2D16%2004%3A54%3A42a" ></script> 

     <script type="text/javascript" src="/AM/assets/js/util.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 


     <script type="text/javascript" src="/AM/assets/js/lib/jquery.validate-1.5.5.js"></script> 

     <script type="text/javascript" src="/AM/assets/js/jquery.validationEngine.min.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script type="text/javascript" src="/AM/assets/js/jquery.validationEngine-en.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 

     <script type="text/javascript" src="/AM/assets/js/lib/css-browser-selector-0.4.0.js"></script> 




     <script language="javascript" type="text/javascript" src="/am/assets/js/KinnserDataTables/KinnserDataTables.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script language="javascript" type="text/javascript" src="/am/assets/js/lib/dataTables/plugins/jquery.dataTables.rowGrouping.js"></script> 
     <script src="//ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script> 
     <script>window.jQuery.fn.DataTable || document.write('<script src="/am/assets/js/lib/dataTables/dataTables-1.9.4/media/js/jquery.dataTables.min.js"><\/script>')</script> 
     <script language="javascript" type="text/javascript" src="/am/assets/js/KinnserDataTables/plugins/state.dataTables.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script language="javascript" type="text/javascript" src="/am/assets/js/lib/dataTables/plugins/jquery.dataTables.fnStandingRedraw.js"></script> 
     <script language="javascript" type="text/javascript" src="/am/assets/js/KinnserDataTables/plugins/KinnserDataTables.sorting.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 
     <script language="javascript" type="text/javascript" src="/am/assets/js/KinnserDataTables/plugins/KinnserDataTables.pagination.js?refresh=25%2DMar%2D16%2004%3A54%3A42"></script> 



     <script> 
     $(document).ready(function(){ 





       $('.logout').click(function(){ ux.statePersistance.clear();}) 

      if ($('.ux-datatables').length > 0){ 
       bootstrapDatatableScript = document.createElement('script'); 
       bootstrapDatatableScript.language = 'javascript'; 
       bootstrapDatatableScript.type = 'text/javascript'; 
       bootstrapDatatableScript.src = '/am/assets/js/KinnserDataTables/plugins/bootstrap.dataTables.js?refresh=25%2DMar%2D16%2004%3A54%3A42' 
       document.getElementsByTagName('head')[0].appendChild(bootstrapDatatableScript); 
      } 
      else{ 
       var includeCSS = function(file) { 
        var css = document.createElement('link'); 
        css.rel = 'stylesheet' 
        css.type = 'text/css'; 
        css.href = file; 
        css.media = 'screen'; 
        document.getElementsByTagName('head')[0].appendChild(css); 
       } 
       includeCSS('/am/assets/js/lib/dataTables/dataTables-1.9.2/media/css/demo_table.css'); 
       includeCSS('/am/assets/js/lib/dataTables/dataTables-1.9.2/media/css/demo_table_jui.css'); 
      } 
     }); 
     </script> 


     <script type="text/javascript" src="/AM/assets/js/lib/jquery.versioncompare.js"></script> 

     <script language="javascript" type="text/javascript" src="/AM/assets/js/lib/jquery.cookie-1.2.js"></script> 


     <script type="text/javascript"> 
     $(document).ready(function(){ 
      //Stripping json prefix and adding token to header 
      $.ajaxSetup({ 
       headers: {'token': $.cookie('EHRTOKEN')}, 
       cache:false, 
       dataFilter:function(data,type) { 
        //remove "//" 
        if(type == 'json') { 
        data = data.substring(2,data.length);//remove "//" 
        // remove '<*>' prefix from every field value (serializeJSON fix for CF) 
        data = data.replace(/":"<\*>/ig, '":"'); 
        } 
        return data; 
       } 
      }); 
      // Set app base url for ux library 
      ux.config.setAppBaseUrl('/am/'); 

      $('#globalAjaxLoader').ajaxStart(function(){$(this).show();}) 
      $('#globalAjaxLoader').ajaxStop(function(){$(this).hide();}) 

      //from util.js. overrides default behavior and makes radio buttons uncheckable 
      setRadiosUncheckable(); 

      $('#gTemplateErrorWindow').dialog({ //generic error handling dialog construction 
       bgiframe: true, 
       height: 200, 
       width: 350, 
       modal: true, 
       autoOpen:false, 
       buttons: { 
        'Ok': { 
         id: 'gTemplateErrorOkButton', 
         text: 'Ok', 
         click: function() { 
          $(this).dialog('close'); 
         } 
        } //end of Ok button declaration 
       } 
      }); 


     }); 
     </script> 

    <!-- Placed at the end of the document so the pages load faster --> 
    <script src="/AM/assets/js/lib/bootstrap/bootstrap-2.3.1.min.js"></script> 
    <script src="/AM/assets/js/lib/bootstrap/extensions/bootstrap-popover.js"></script> 
    <script src="/AM/assets/js/jquery.kinnser.utils.js"></script> 
    <script src="/AM/assets/js/lib/jquery.maskedinput-1.3.min.js"></script> 
    <script src="/AM/assets/js/lib/jquery-jsRender-1.0.pre.js"></script> 
    <script src="/AM/assets/js/ux/ux.datepicker.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 
    <script src="/AM/assets/js/ux/ux.wellaccordion.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 
    <script src="/AM/assets/js/ux/ux.visitOverlapMessageFormat.js"></script> 
    <script src="/AM/assets/js/ux/ux.searchDuplicatedPatient.js"></script> 


    <script type="text/javascript" src="/AM/assets/js/lib/ios-orientationchange-fix.js"></script> 


    <script src="/AM/assets/js/ux/ux.patientDetail.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 

    <script src="/AM/assets/js/ux/ux.taskComment.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 


    <script src="/AM/assets/js/ux/ux.statePersistance.js?refresh=25%2DMar%2D16%2004%3A54%3A42" ></script> 



<script type="text/javascript">/* <![CDATA[ */ 
ColdFusion.Ajax.importTag('CFDIV'); 
/* ]]> */</script> 
</head> 


    <body class="ux" > 


<div id="gTemplateErrorWindow" style="display: none;"> 
    <div id="gTemplateErrorWindowText"></div> 
</div> 



    <div class="container" id="AMContainer"> 
     <div> 
      <div id="globalAjaxLoader" class="ajaxLoading"> 
       <div style="margin: 0px auto 0px auto; color:white; font-weight:bold; width:95px; background-color:#A31F24">Loading...</div> 
      </div> 



       <div class="header"> 
        <a href="/am/Message/inbox.cfm"> 
        <img src="/packages/images/header/kinnser-agancy-manager.png" alt="Kinnser Agency Manager" border="0"> 
        </a> 



<script type="text/javascript"> 
$('#swapUser').live('change', function (e) { 
    var valueSelected = this.value; 
    var userValues = valueSelected.split(','); 
    var userkeySelected = userValues[0]; 
    var userTypeSelected = userValues[1]; 
    $.ajax({ 
     type:'POST', 
     url:'/API/services/Authentication/AuthenticationService.cfc?method=switchContext', 
     dataType: 'json', 
     data: { 
      userkey: userkeySelected, 
      userType: userTypeSelected 
     }, 
     success: function(data) { 
      var redirectUrl = '/ContextSwitch.cfm?product=' + data.data.product + '&userKey=' + data.data.UserKey; 

      if(data.data.ClinicUserKey !== 0){ 
       redirectUrl += '&clinicUserKey=' + data.data.ClinicUserKey; 
      } 

      window.location = redirectUrl; 
     }  
    }); 
}); 

+0

Сообщите нам код/​​примеры, пожалуйста. –

+0

Попробуйте на другой странице. Попробуйте это с консоли разработчика, а не в своем букмаркете. Если вы ожидаете, что jQuery будет полезен, убедитесь, что jQuery доступен. –

+0

Я гарантирую, что jQuery доступен, вставив мини-версию в верхнюю часть файла javascript. Я использовал jQuery 2.2, но заметил, что страница использует 1.7.1, поэтому я поменял мой jQuery в своем букмарклете для этой версии, но это не имело значения. –

ответ

0

я, наконец, понял, характер этой проблемы, которая должна была сделать с доступом к букмарклету с защищенной страницы. Я закончил создание MAMP для запуска https, используя фиктивный самозаверяющий сертификат, чтобы обойти эту проблему. К сожалению, теперь данные, заполненные полями, не сохраняются при нажатии кнопки сохранения в нижней части страницы.

Я отправлю это с помощью кода из элемента формы и кнопки сохранения в новом потоке.