曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.かつては雑草やヨモギと共に雨や露を分かち合っていたが、今では松やヒノキと共に霜や雪に耐えている。曾与蒿藜同雨露,Once sharing rain and dew with weeds and wormwood, now enduring frost and snow with pines and cypresses.终随松柏到冰霜.曾与蒿藜同雨露한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.,终随松柏到冰霜.譖セ荳手珍阯懷酔髮ィ髴イ�檎サ磯囂譚セ譟丞芦蜀ー髴�曾与蒿藜同雨露,鏇句笌钂胯棞鍚岄洦闇诧紝缁堥殢鏉炬煆鍒板啺闇�终随松柏到冰霜.曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.曾与蒿藜同雨露,终随松柏到冰霜.
/**
* Interim login dialog.
*
* @output wp-includes/js/wp-auth-check.js
*/
( function( $ ) {
var wrap,
tempHidden,
tempHiddenTimeout;
/**
* Shows the authentication form popup.
*
* @since 3.6.0
* @private
*/
function show() {
var parent = $( '#wp-auth-check' ),
form = $( '#wp-auth-check-form' ),
noframe = wrap.find( '.wp-auth-fallback-expired' ),
frame, loaded = false;
if ( form.length ) {
// Add unload confirmation to counter (frame-busting) JS redirects.
$( window ).on( 'beforeunload.wp-auth-check', function( event ) {
event.originalEvent.returnValue = window.wp.i18n.__( 'Your session has expired. You can log in again from this page or go to the login page.' );
});
frame = $( '<iframe id="wp-auth-check-frame" frameborder="0">' ).attr( 'title', noframe.text() );
frame.on( 'load', function() {
var height, body;
loaded = true;
// Remove the spinner to avoid unnecessary CPU/GPU usage.
form.removeClass( 'loading' );
try {
body = $( this ).contents().find( 'body' );
height = body.height();
} catch( er ) {
wrap.addClass( 'fallback' );
parent.css( 'max-height', '' );
form.remove();
noframe.focus();
return;
}
if ( height ) {
if ( body && body.hasClass( 'interim-login-success' ) ) {
hide();
} else {
parent.css( 'max-height', height + 40 + 'px' );
}
} else if ( ! body || ! body.length ) {
// Catch "silent" iframe origin exceptions in WebKit
// after another page is loaded in the iframe.
wrap.addClass( 'fallback' );
parent.css( 'max-height', '' );
form.remove();
noframe.focus();
}
}).attr( 'src', form.data( 'src' ) );
form.append( frame );
}
$( 'body' ).addClass( 'modal-open' );
wrap.removeClass( 'hidden' );
if ( frame ) {
frame.focus();
/*
* WebKit doesn't throw an error if the iframe fails to load
* because of "X-Frame-Options: DENY" header.
* Wait for 10 seconds and switch to the fallback text.
*/
setTimeout( function() {
if ( ! loaded ) {
wrap.addClass( 'fallback' );
form.remove();
noframe.focus();
}
}, 10000 );
} else {
noframe.focus();
}
}
/**
* Hides the authentication form popup.
*
* @since 3.6.0
* @private
*/
function hide() {
var adminpage = window.adminpage,
wp = window.wp;
$( window ).off( 'beforeunload.wp-auth-check' );
// When on the Edit Post screen, speed up heartbeat
// after the user logs in to quickly refresh nonces.
if ( ( adminpage === 'post-php' || adminpage === 'post-new-php' ) && wp && wp.heartbeat ) {
wp.heartbeat.connectNow();
}
wrap.fadeOut( 200, function() {
wrap.addClass( 'hidden' ).css( 'display', '' );
$( '#wp-auth-check-frame' ).remove();
$( 'body' ).removeClass( 'modal-open' );
});
}
/**
* Set or reset the tempHidden variable used to pause showing of the modal
* after a user closes it without logging in.
*
* @since 5.5.0
* @private
*/
function setShowTimeout() {
tempHidden = true;
window.clearTimeout( tempHiddenTimeout );
tempHiddenTimeout = window.setTimeout(
function() {
tempHidden = false;
},
300000 // 5 min.
);
}
/**
* Binds to the Heartbeat Tick event.
*
* - Shows the authentication form popup if user is not logged in.
* - Hides the authentication form popup if it is already visible and user is
* logged in.
*
* @ignore
*
* @since 3.6.0
*
* @param {Object} e The heartbeat-tick event that has been triggered.
* @param {Object} data Response data.
*/
$( function() {
/**
* Hides the authentication form popup when the close icon is clicked.
*
* @ignore
*
* @since 3.6.0
*/
wrap = $( '#wp-auth-check-wrap' );
wrap.find( '.wp-auth-check-close' ).on( 'click', function() {
hide();
setShowTimeout();
});
}).on( 'heartbeat-tick.wp-auth-check', function( e, data ) {
if ( ! ( 'wp-auth-check' in data ) ) {
return;
}
var showOrHide = function () {
if ( ! data['wp-auth-check'] && wrap.hasClass( 'hidden' ) && ! tempHidden ) {
show();
} else if ( data['wp-auth-check'] && ! wrap.hasClass( 'hidden' ) ) {
hide();
}
};
// This is necessary due to a race condition where the heartbeat-tick event may fire before DOMContentLoaded.
if ( wrap ) {
showOrHide();
} else {
$( showOrHide );
}
});
}(jQuery));