1

通常は正常に動作するコールドフュージョン コードをいくつか継承しました。

私が抱えている問題は、特定のスクリプトの読み込みを拒否する cfinclude を含むページにあります。その前の行でスクリプトをロードしなくても、それほど気になりませんが、そうです。

Firefox はスクリプトを取得しようとさえしません (フィドラーが見ることができる限り)、chrome も取得に失敗します (chrome を開いたときにそのページを開いている場合を除きます。この場合、ページを更新するまで動作します)。 . しかし、Internet Explorer はこれでうまく機能しており、問題なくロードできます。

ライブページはこちらからご覧いただけます。右側の一番上の「広告」は、4 秒ごとに新しい広告がフェードアウトしてフェードインするはずです。

ここでスクリプトが呼び出されます (adrotator.js)。jQuery.js は正常にロードされており、alert私が入れたものも正常に動作します (ロードされていないスクリプトの上または下):

<cfsilent>
    <!--- THIS IS THE LIST OF LARGE ADS FOR IN THE LARGE AD ROTATOR --->
    <cfinclude template="ads/adlist_inc.cfm">
    <!--- PUT IN THE NUMBER OF LARGE ADS HERE --->
    <cfset adListLarge = GetNumAds("large", 0)> <!--- 0 means all the ads --->
</cfsilent>
<script language="javascript" type="text/javascript" src="/locations/js/jquery.js"></script>
<script type="text/javascript">
    alert("test!") <!--- WHY DOES THIS WORK --->
</script>
<!--- WHEN THIS DOESN'T WORK? --->
<script language="javascript" type="text/javascript" src="/locations/js/adrotator.js"></script>

<div id="spotlight_ad_top">
<cfoutput><cfset temp = MakeAllAdImgTags(adListLarge)>#temp#</cfoutput>
</div>

このページは次のように呼び出されます。

<!-- TOP SPOTLIGHT GRAPHICS IN RIGHT COLUMN -->
<div id="locations-branchleaf-spotlight">
<!--- THIS PULLS THE LOCATION SPECIFIC AD IMAGE IF THERE IS ONE  --->
<cfoutput query="ReturnLocationInfo">
        <cfinclude template="../#initials#/spotlightcontent_inc.cfm">
</cfoutput>
<!-- THIS DISPLAYS THE LOCATION-WIDE PROMOTIONAL SPOTLIGHT -->
<cfinclude template="/locations/includes/spotlightcontent_inc.cfm">
</div>

これは、次のように呼び出されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!--- THIS IS THE INCLUDED PAGE FOR EACH LOCATION'S HOME PAGE INDEX.CFM --->
<cfset PAGE_TITLE = ReturnLocationInfo.name & " - Carnegie Library of Pittsburgh">
<title><cfoutput>#PAGE_TITLE#</cfoutput></title>
<cfinclude template="/includes/header-locations-branchleaf_inc.html">
<cfinclude template="../breadcrumb_inc.html">

<div id="content">
<!-- THIS BRANCH/DEPARTMENT'S NAME, DUMP THE DASH IF IT IS THE pop-up -->
<h1><cfif locationID is 92><cfelse>CLP &ndash; </cfif><cfoutput>#ReturnLocationInfo.name#</cfoutput></h1>
<!-- BRANCH LEAF - LEFT COLUMN: LOCATION PHOTO & CONTACT INFO, HOURS EVENTS, LINKS  -->
<div id="leftcolumn">
<!-- 1: LOCATION'S PHOTO/CONTACT INFO WITH LINKSTO DIRECTIONS AND CONTACT FORM -->
<cfinclude template="information_inc.cfm">

<!-- 2: LOCATION'S EMERGENCY NOTICE PULLED FROM TAB MGR NOTICES (SPOTLIGHTS) -->
<cfinclude template="notice_inc.cfm">

<!-- 3: LOCATION'S HOURS GRID -->
<cfinclude template="hours_inc.cfm">

<!-- Testing out location specific notifications! -->
<cfinclude template="notification_inc.cfm">

<!-- 4: LOCATION'S EVENTS -->
<!--- IF THIS IS THE PCCENTER (13) OR JCEC (6), INCLUDE THE programs_inc.cfm IN /locations/pccenter/ --->
<cfif locationID IS 13 or locationID IS 6>
    <cfinclude template="/locations/pccenter/programs_inc.cfm"> 
<cfelse>
    <cfinclude template="programs_inc.cfm">
</cfif>

<!-- 5: LINKS FOR LOCATION -->
<cfinclude template="links_inc.cfm">

<!-- 6: STAFF PICK FOR LOCATION IF ONE EXISTS-->
<cfinclude template="staffpick_inc.cfm">
  </div> <!--//end leftcolumn -->

  <!-- BRANCH LEAF - RIGHT COLUMN: SPOTLIGHT, FLICKR PHOTO GALLERY -->
  <div id="rightcolumn">
<!--- LOCATION'S UNUSED MAP AND DIRECTIONS
<cfinclude template="directions_inc.cfm">  --->
<!-- 9. THE SPOTLIGHT AD - FORMERLY TOPAD -->
<cfinclude template="spotlight_inc.cfm">

<!-- 10: PHOTOS TAGGED WITH THIS BRANCH IN FLICKR -->
<cfinclude template="gallery_inc.cfm">
  </div> <!--//end rightcolumn -->
</div> <!--//end content -->
<cfinclude template="/includes/footer_inc.html">

スクリプトがロードされない理由はありますか? スクリプトを新しいタブにロードすると、接続して問題なく表示されます。

スクリプトは次のとおりです。

var activeAdNum = 0;
var totAds = 0;
var adSpeed = 4*1000;
var userBusy = false;

rotate_ads = function() {
  if (userBusy){
    window.setTimeout(rotate_ads, adSpeed);
    return;
  }
  jQuery(function(){
    nextAdNum = (activeAdNum % totAds) + 1;
    $("#rotating_ad_"+activeAdNum).fadeOut(500, function(){ 
      $("#rotating_ad_"+activeAdNum).removeClass("rotating_ad_active").addClass("rotating_ad_inactive");
      $("#rotating_ad_"+nextAdNum).fadeIn("slow", function(){
        $("#rotating_ad_"+nextAdNum).removeClass("rotating_ad_inactive").addClass("rotating_ad_active");
        activeAdNum = nextAdNum;
      });
    });
  });
  window.setTimeout(rotate_ads, adSpeed);     
}

jQuery().ready(function() { 
  $(".rotating_ad").hover(
    function(){
      userBusy = true;
    },
    function(){
      userBusy = false;
    }
  );
  var adCount = 0;
  $(".rotating_ad").each(function(){adCount++;});
  totAds = adCount;
  if (totAds > 0){
    activeAdNum = 1;
  }

  window.setTimeout(rotate_ads, adSpeed);
});
4

1 に答える 1

4

なんてこった、私はばかだと感じます。

「ad」という単語が含まれているため、adblock plus は完全に動作を停止します (ブランチでのイベントであるという事実に関係なく)。スクリプトの名前を変更してみます。

ああ、そんなに簡単だったなんて信じられない。私はこれを理解するために昨日の大部分を費やしました。

将来の警告: それが実際に広告でない限り、スクリプトに名前を付けないでください.*ad.*

于 2013-09-13T14:14:44.137 に答える