2015-10-26 51 views
0

我有兩個頁面:第一頁包含點擊按鈕時出現一個燈箱。我想第二頁的內容的把它放在收藏夾在燈箱上集成網頁內容頁面

第1頁

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script src="jquery.colorbox.js"></script> 
    <link rel="stylesheet" href="colorbox.css" /> 
    <script> 
     $(document).ready(function() { 
      $(".inline").colorbox({ inline: true, width: "50%" }); 

     }) 
    </script> 
    <title></title> 
    </head> 
<body> 
    <h1>Colorbox Demonstration</h1> 
    <p><a class='inline' href="#inline_content">Inline HTML</a></p> 
    <div style='display:none'> 
    <div id='inline_content' style='padding:10px; background:#fff;'> 
     <p><strong>This content comes from a hidden element on this page.</strong></p> 
     <p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p> 
     <p><a id="click" href="#" style='padding:5px; background:#ccc;'>btn1</a></p> 
    </div> 
    </div> 
    <div style='display:none'> 
     <div id='test' style='padding:10px; background:#fff;'> 
      <p>The inline option preserves bound JavaScript events and changes.</p> 

     </div> 
    </div> 
</body> 
</html> 

jquery.colorbox.js

(function ($, document, window) { 
      var 

      defaults = { 

      html: false, 
      photo: false, 
      iframe: false, 
      inline: false, 

      transition: "elastic", 
      speed: 300, 
      fadeOut: 300, 
      width: false, 
      initialWidth: "600", 
      innerWidth: false, 
      maxWidth: false, 
      height: false, 
      initialHeight: "450", 
      innerHeight: false, 
      maxHeight: false, 
      scrolling: true, 
      opacity: 0.9, 
      preloading: true, 
      className: false, 
      overlayClose: true, 
      escKey: true, 
      arrowKey: true, 
      top: false, 
      bottom: false, 
      left: false, 
      right: false, 
      fixed: false, 
      closeButton: true, 
      fastIframe: true, 
      open: false, 

      href: function() { 
       return $(this).attr('href'); 
      }, 


      createIframe: function() { 
       var iframe = document.createElement('iframe'); 
       var attrs = $(this).data('cbox-iframe-attrs'); 

       if (typeof attrs === 'object') { 
       $.each(attrs, function(key, val){ 
        iframe[key] = val; 
       }); 
       } 
       return iframe; 
      } 
      }, 

      colorbox = 'colorbox', 
      prefix = 'cbox', 
      boxElement = prefix + 'Element', 

      event_open = prefix + '_open', 
      event_load = prefix + '_load', 
      event_complete = prefix + '_complete', 
      event_cleanup = prefix + '_cleanup', 
      event_closed = prefix + '_closed', 
      event_purge = prefix + '_purge', 

      $overlay, 
      $box, 
      $wrap, 
      $content, 
      $topBorder, 
      $leftBorder, 
      $rightBorder, 
      $bottomBorder, 
      $related, 
      $window, 
      $loaded, 
      $loadingBay, 
      $loadingOverlay, 
      $title, 
      $current, 
      $slideshow, 
      $next, 
      $prev, 
      $close, 
      $groupControls, 
      $events = $('<a/>'), 

      settings, 
      interfaceHeight, 
      interfaceWidth, 
      loadedHeight, 
      loadedWidth, 
      index, 
      photo, 
      open, 
      active, 
      closing, 
      loadingTimer, 
      publicMethod, 
      div = "div", 
      requests = 0, 
      previousCSS = {}, 
      init; 

      function $tag(tag, id, css) { 
      var element = document.createElement(tag); 

      if (id) { 
       element.id = prefix + id; 
      } 

      if (css) { 
       element.style.cssText = css; 
      } 

      return $(element); 
      } 

      function winheight() { 
      return window.innerHeight ? window.innerHeight : $(window).height(); 
      } 

      function Settings(element, options) { 
      if (options !== Object(options)) { 
       options = {}; 
      } 

      this.cache = {}; 
      this.el = element; 

      this.value = function(key) { 
       var dataAttr; 

       if (this.cache[key] === undefined) { 
       dataAttr = $(this.el).attr('data-cbox-'+key); 

       if (dataAttr !== undefined) { 
        this.cache[key] = dataAttr; 
       } else if (options[key] !== undefined) { 
        this.cache[key] = options[key]; 
       } else if (defaults[key] !== undefined) { 
        this.cache[key] = defaults[key]; 
       } 
       } 

       return this.cache[key]; 
      }; 

      this.get = function(key) { 
       var value = this.value(key); 
       return $.isFunction(value) ? value.call(this.el, this) : value; 
      }; 
      } 

      function setSize(size, dimension) { 
      return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight())/100) : 1) * parseInt(size, 10)); 
      } 

      function setClass(str) { 
      if (setClass.str !== str) { 
       $box.add($overlay).removeClass(setClass.str).addClass(str); 
       setClass.str = str; 
      } 
      } 

      function getRelated(rel) { 
      index = 0; 

      if (rel && rel !== false && rel !== 'nofollow') { 
       $related = $('.' + boxElement).filter(function() { 
       var options = $.data(this, colorbox); 
       var settings = new Settings(this, options); 
       return (settings.get('rel') === rel); 
       }); 
       index = $related.index(settings.el); 

       if (index === -1) { 
       $related = $related.add(settings.el); 
       index = $related.length - 1; 
       } 
      } else { 
       $related = $(settings.el); 
      } 
      } 

      function trigger(event) { 
      // for external use 
      $(document).trigger(event); 
      // for internal use 
      $events.triggerHandler(event); 
      }; 

      function launch(element) { 
      var options; 

      if (!closing) { 

       options = $(element).data(colorbox); 

       settings = new Settings(element, options); 

       getRelated(settings.get('rel')); 

       if (!open) { 
       open = active = true; 

       setClass(settings.get('className')); 

       $box.css({visibility:'hidden', display:'block', opacity:''}); 

       $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden'); 
       $content.css({width:'', height:''}).append($loaded); 

       interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height(); 
       interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width(); 
       loadedHeight = $loaded.outerHeight(true); 
       loadedWidth = $loaded.outerWidth(true); 

       var initialWidth = setSize(settings.get('initialWidth'), 'x'); 
       var initialHeight = setSize(settings.get('initialHeight'), 'y'); 
       var maxWidth = settings.get('maxWidth'); 
       var maxHeight = settings.get('maxHeight'); 

       settings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0); 
       settings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0); 

       $loaded.css({width:'', height:settings.h}); 
       publicMethod.position(); 

       trigger(event_open); 
       settings.get('onOpen'); 

       $groupControls.add($title).hide(); 

       $box.focus(); 


       if (settings.get('returnFocus')) { 
        $events.one(event_closed, function() { 
        $(settings.el).focus(); 
        }); 
       } 
       } 

       var opacity = parseFloat(settings.get('opacity')); 
       $overlay.css({ 
       opacity: opacity === opacity ? opacity : '', 
       cursor: settings.get('overlayClose') ? 'pointer' : '', 
       visibility: 'visible' 
       }).show(); 

       if (settings.get('closeButton')) { 
       $close.html(settings.get('close')).appendTo($content); 
       } else { 
       $close.appendTo('<div/>'); 
       } 

       load(); 
      } 
      } 

      function appendHTML() { 
      if (!$box) { 
       init = false; 
       $window = $(window); 
       $box = $tag(div).attr({ 
       id: colorbox, 
       'class': $.support.opacity === false ? prefix + 'IE' : '', 
       role: 'dialog', 
       tabindex: '-1' 
       }).hide(); 
       $overlay = $tag(div, "Overlay").hide(); 
       $loadingOverlay = $([$tag(div, "LoadingOverlay")[0],$tag(div, "LoadingGraphic")[0]]); 
       $wrap = $tag(div, "Wrapper"); 
       $content = $tag(div, "Content").append(
       $title = $tag(div, "Title"), 
       $current = $tag(div, "Current"), 
       $prev = $('<button type="button"/>').attr({id:prefix+'Previous'}), 
       $next = $('<button type="button"/>').attr({id:prefix+'Next'}), 
       $slideshow = $tag('button', "Slideshow"), 
       $loadingOverlay 
      ); 

       $close = $('<button type="button"/>').attr({id:prefix+'Close'}); 

       $wrap.append(
       $tag(div).append(
        $tag(div, "TopLeft"), 
        $topBorder = $tag(div, "TopCenter"), 
        $tag(div, "TopRight") 
       ), 
       $tag(div, false, 'clear:left').append(
        $leftBorder = $tag(div, "MiddleLeft"), 
        $content, 
        $rightBorder = $tag(div, "MiddleRight") 
       ), 
       $tag(div, false, 'clear:left').append(
        $tag(div, "BottomLeft"), 
        $bottomBorder = $tag(div, "BottomCenter"), 
        $tag(div, "BottomRight") 
       ) 
      ).find('div div').css({'float': 'left'}); 

       $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;'); 

       $groupControls = $next.add($prev).add($current).add($slideshow); 
      } 
      if (document.body && !$box.parent().length) { 
       $(document.body).append($overlay, $box.append($wrap, $loadingBay)); 
      } 
      } 

      function addBindings() { 
      function clickHandler(e) { 
       if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) { 
       e.preventDefault(); 
       launch(this); 
       } 
      } 

      if ($box) { 
       if (!init) { 
       init = true; 

       $next.click(function() { 
        publicMethod.next(); 
       }); 
       $prev.click(function() { 
        publicMethod.prev(); 
       }); 
       $close.click(function() { 
        publicMethod.close(); 
       }); 
       $overlay.click(function() { 
        if (settings.get('overlayClose')) { 
        publicMethod.close(); 
        } 
       }); 

       $(document).bind('keydown.' + prefix, function (e) { 
        var key = e.keyCode; 
        if (open && settings.get('escKey') && key === 27) { 
        e.preventDefault(); 
        publicMethod.close(); 
        } 
        if (open && settings.get('arrowKey') && $related[1] && !e.altKey) { 
        if (key === 37) { 
         e.preventDefault(); 
         $prev.click(); 
        } else if (key === 39) { 
         e.preventDefault(); 
         $next.click(); 
        } 
        } 
       }); 

       if ($.isFunction($.fn.on)) { 
        $(document).on('click.'+prefix, '.'+boxElement, clickHandler); 
       } else { 

        $('.'+boxElement).live('click.'+prefix, clickHandler); 
       } 
       } 
       return true; 
      } 
      return false; 
      } 

      if ($[colorbox]) { 
      return; 
      } 

      $(appendHTML); 

      publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) { 
      var settings; 
      var $obj = this; 

      options = options || {}; 

      if ($.isFunction($obj)) { 
       $obj = $('<a/>'); 
       options.open = true; 
      } 

      if (!$obj[0]) { 
       return $obj; 
      } 

      appendHTML(); 

      if (addBindings()) { 

       if (callback) { 
       options.onComplete = callback; 
       } 

       $obj.each(function() { 
       var old = $.data(this, colorbox) || {}; 
       $.data(this, colorbox, $.extend(old, options)); 
       }).addClass(boxElement); 

       settings = new Settings($obj[0], options); 

       if (settings.get('open')) { 
       launch($obj[0]); 
       } 
      } 

      return $obj; 
      }; 

      publicMethod.position = function (speed, loadedCallback) { 
      var 
      css, 
      top = 0, 
      left = 0, 
      offset = $box.offset(), 
      scrollTop, 
      scrollLeft; 

      $window.unbind('resize.' + prefix); 
      $box.css({top: -9e4, left: -9e4}); 

      scrollTop = $window.scrollTop(); 
      scrollLeft = $window.scrollLeft(); 

      if (settings.get('fixed')) { 
       offset.top -= scrollTop; 
       offset.left -= scrollLeft; 
       $box.css({position: 'fixed'}); 
      } else { 
       top = scrollTop; 
       left = scrollLeft; 
       $box.css({position: 'absolute'}); 
      } 

      if (settings.get('right') !== false) { 
       left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0); 
      } else if (settings.get('left') !== false) { 
       left += setSize(settings.get('left'), 'x'); 
      } else { 
       left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0)/2); 
      } 

      if (settings.get('bottom') !== false) { 
       top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0); 
      } else if (settings.get('top') !== false) { 
       top += setSize(settings.get('top'), 'y'); 
      } else { 
       top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0)/2); 
      } 

      $box.css({top: offset.top, left: offset.left, visibility:'visible'}); 

      $wrap[0].style.width = $wrap[0].style.height = "9999px"; 

      function modalDimensions() { 
       $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width,10) - interfaceWidth)+'px'; 
       $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height,10) - interfaceHeight)+'px'; 
      } 

      css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left}; 

      if (speed) { 
       var tempSpeed = 0; 
       $.each(css, function(i){ 
       if (css[i] !== previousCSS[i]) { 
        tempSpeed = speed; 
        return; 
       } 
       }); 
       speed = tempSpeed; 
      } 

      previousCSS = css; 

      if (!speed) { 
       $box.css(css); 
      } 

      $box.dequeue().animate(css, { 
       duration: speed || 0, 
       complete: function() { 
       modalDimensions(); 

       active = false; 

       $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px"; 
       $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px"; 

       if (settings.get('reposition')) { 
        setTimeout(function() { 
        $window.bind('resize.' + prefix, publicMethod.position); 
        }, 1); 
       } 

       if ($.isFunction(loadedCallback)) { 
        loadedCallback(); 
       } 
       }, 
       step: modalDimensions 
      }); 
      }; 

      publicMethod.resize = function (options) { 
      var scrolltop; 

      if (open) { 
       options = options || {}; 

       if (options.width) { 
       settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth; 
       } 

       if (options.innerWidth) { 
       settings.w = setSize(options.innerWidth, 'x'); 
       } 

       $loaded.css({width: settings.w}); 

       if (options.height) { 
       settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight; 
       } 

       if (options.innerHeight) { 
       settings.h = setSize(options.innerHeight, 'y'); 
       } 

       if (!options.innerHeight && !options.height) { 
       scrolltop = $loaded.scrollTop(); 
       $loaded.css({height: "auto"}); 
       settings.h = $loaded.height(); 
       } 

       $loaded.css({height: settings.h}); 

       if(scrolltop) { 
       $loaded.scrollTop(scrolltop); 
       } 

       publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed')); 
      } 
      }; 

      publicMethod.prep = function (object) { 
      if (!open) { 
       return; 
      } 

      var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed'); 
      $loaded.remove(); 
      $loaded = $tag(div, 'LoadedContent').append(object); 

      function getWidth() { 
       settings.w = settings.w || $loaded.width(); 
       settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w; 
       return settings.w; 
      } 
      function getHeight() { 
       settings.h = settings.h || $loaded.height(); 
       settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h; 
       return settings.h; 
      } 

      $loaded.hide() 
      .appendTo($loadingBay.show()) 
      .css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'}) 
      .css({height: getHeight()}) 
      .prependTo($content); 
      $loadingBay.hide(); 
      $(photo).css({'float': 'none'}); 

      setClass(settings.get('className')); 

      callback = function() { 
       var total = $related.length, 
       iframe, 
       complete; 

       if (!open) { 
       return; 
       } 

       function removeFilter() { 
       if ($.support.opacity === false) { 
        $box[0].style.removeAttribute('filter'); 
       } 
       } 

       complete = function() { 
       clearTimeout(loadingTimer); 
       $loadingOverlay.hide(); 
       trigger(event_complete); 
       settings.get('onComplete'); 
       }; 

       $title.html(settings.get('title')).show(); 
       $loaded.show(); 

       if (total > 1) { 
       if (typeof settings.get('current') === "string") { 
        $current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show(); 
       } 

       $next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next')); 
       $prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous')); 

       } else { 
       $groupControls.hide(); 
       } 

       if (settings.get('iframe')) { 

       iframe = settings.get('createIframe'); 

       if (!settings.get('scrolling')) { 
        iframe.scrolling = "no"; 
       } 

       $(iframe) 
        .attr({ 
        src: settings.get('href'), 
        'class': prefix + 'Iframe' 
        }) 
        .one('load', complete) 
        .appendTo($loaded); 

       $events.one(event_purge, function() { 
        iframe.src = "//about:blank"; 
       }); 

       if (settings.get('fastIframe')) { 
        $(iframe).trigger('load'); 
       } 
       } else { 
       complete(); 
       } 

       if (settings.get('transition') === 'fade') { 
       $box.fadeTo(speed, 1, removeFilter); 
       } else { 
       removeFilter(); 
       } 
      }; 

      if (settings.get('transition') === 'fade') { 
       $box.fadeTo(speed, 0, function() { 
       publicMethod.position(0, callback); 
       }); 
      } else { 
       publicMethod.position(speed, callback); 
      } 
      }; 

      function load() { 
      var href, setResize, prep = publicMethod.prep, $inline, request = ++requests; 

      active = true; 
      photo = false; 

      trigger(event_purge); 
      trigger(event_load); 
      settings.get('onLoad'); 

      settings.h = settings.get('height') ? 
       setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight : 
       settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y'); 

      settings.w = settings.get('width') ? 
       setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth : 
       settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x'); 

      settings.mw = settings.w; 
      settings.mh = settings.h; 

      if (settings.get('maxWidth')) { 
       settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth; 
       settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw; 
      } 
      if (settings.get('maxHeight')) { 
       settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight; 
       settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh; 
      } 

      href = settings.get('href'); 
      loadingTimer = setTimeout(function() { 
       $loadingOverlay.show(); 
      }, 100); 

      if (settings.get('inline')) { 
       var $target = $(href); 
       $inline = $('<div>').hide().insertBefore($target); 
       $events.one(event_purge, function() { 
       $inline.replaceWith($target); 
       }); 
       prep($target); 
      } else if (settings.get('iframe')) { 

       prep(" "); 
      } else if (settings.get('html')) { 
       prep(settings.get('html')); 
      } 
      } 

      publicMethod.next = function() { 
      if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) { 
       index = getIndex(1); 
       launch($related[index]); 
      } 
      }; 


      publicMethod.close = function() { 
      if (open && !closing) { 

       closing = true; 
       open = false; 
       trigger(event_cleanup); 
       settings.get('onCleanup'); 
       $window.unbind('.' + prefix); 
       $overlay.fadeTo(settings.get('fadeOut') || 0, 0); 

       $box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function() { 
       $box.hide(); 
       $overlay.hide(); 
       trigger(event_purge); 
       $loaded.remove(); 

       setTimeout(function() { 
        closing = false; 
        trigger(event_closed); 
        settings.get('onClosed'); 
       }, 1); 
       }); 
      } 
      }; 
      publicMethod.element = function() { 
      return $(settings.el); 
      }; 
     }(jQuery, document, window)); 

第2頁

<html> 
<head> 
    <meta charset=utf-8"/> 
    <title></title> 
</head> 
<body> 
    dfdfdffdfdfdf 
</body> 
</html> 

我想將html第2頁的內容集成到第1頁的燈箱上

回答

0

嘗試使用它,

iframe: true,當$(document).ready功能