Sáng 14/10, mưa rải rác 10-20 mm tại các phường nội đô khiến nhiều tuyến đường Hà Nội ùn tắc nghiêm trọng dù không xảy ra ngập úng.
var v_image_player_us=’
‘;var v_event_article=’8014′;var v_event_no_us=’2201′;var v_ma_ten_video_khong_hien_thi_us=’cd_nivea_fifa,cd_nivea_affcup,cp_special_worldcup,cp_special_nation_leagues,cp_special_asian_cup_ban_quyen,cd_special_u22_dna,cp_special_chung_ket_c1_19,cp_special_copa_america,cp_special_icc_cup,cp_special_tennis_no_us,cd_nivea_nha,cp_special_seagames_ban_quyen,cp_special_u23_chau_a_ban_quyen,cp_special_ligue1,cp_special_laliga,cp_special_euro_ban_quyen,cp_special_grand_slam,cp_special_atp_1000,cp_special_c1_ban_quyen,cp_special_aff_ban_quyen,cp_special_ttcn_test,cp_special_24h_worldcup,cp_special_nu_worldcup,cp_special_bundesliga,cp_special_fa_cup,cp_special_u23_dna_ban_quyen,cp_special_asiad_ban_quyen,cp_special_vongloai_worldcup,cp_special_u19,cp_special_olympic,cp_special_fifa_club,cp_special_fpt_fifa_club’;var v_autoplay_bai_tuong_thuat= true;var v_cdn_domain = ‘https://cdn.24h.com.vn/’; var url_data_json_lives = ‘https://cdn.24h.com.vn/upload/html-live/live-11512.json?time=’; var v_so_giay_load_data_json_tuong_thuat=10000; window.addEventListener(‘load’, function(){_realtime_tuong_thuat(11512);});.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}.liveCnt span[style^=”aspect-ratio”] {display: block;margin: 0 auto}
Mới nhất
Cũ nhất
Diễn biến chính
Mới nhất
Cũ nhất
10h30
Trung tâm Dự báo khí tượng thủy văn Quốc gia, ghi nhận đêm qua và sáng nay một số nơi ở Bắc Bộ có mưa lớn như Mỹ Lộc (Hưng Yên) 191 mm; Vĩnh Bảo (Hải Phòng) 139 mm, Phình Hồ (Quảng Ninh) 128 mm, Văn Lý (Ninh Bình) 114 mm.
Riêng Hà Nội dự báo từ sáng nay đến hết ngày 15/10 có mưa, mưa vừa và giông với lượng mưa 30-60 mm, cục bộ có nơi mưa to trên 90 mm. Trong mưa giông có khả năng xảy ra lốc, sét, mưa đá và gió giật mạnh.
Công nhân thoát nước ứng trực trên phố Trung Kính. Ảnh: Thanh Hải
Ùn tắc cục bộ trên phố Đào Tấn hướng Kim Mã lúc 10h30. Ảnh: Thanh Hải
Giao thông hỗn loạn trên đường 70 đoạn Bệnh viện K Tân Triều. Ảnh: Thanh Hải
Đường Nguyễn Trãi sáng 14/10. Ảnh: Ngọc Thành
10h05
Đường Cầu Giấy giao phố Khúc Thừa Dụ lúc 10h vẫn chưa giảm mật độ phương tiện. Ảnh: Lộc Chung
// 0) {
// console.log(“AE volByCookie VAR : “+volByCookie);
vid_vol_var = volByCookie;
}
}
// console.log(“AE VIDVOL VAR : “+vid_vol_var);
var vidLoaded = false,
dynamicId,
vidId,
parentVid = “v-24hContainer_zplayer_ec2471”,
videoElmStr = ‘
‘+
‘To view this video please enable JavaScript, and consider upgrading to a web browser that ‘+
‘supports HTML5 video ‘+
‘ ‘ +
”,
videozplayer_ec2471,
videoAds1Conf = {
“poster”: “https://cdn.24h.com.vn/upload/4-2025/images/2025-10-14/1760411835-c—u-gi—y–kh–c-th—a-d—.jpg”,
“offsetWatchPercent”: 20,
“stopOtherOnPlay”: true,
“parentVid”: parentVid,
“offHighlightOnBannerBottom”:false,
“vidErrorLog”: 1,
“skipAble”: true,
“skipTime”: 5000,
/*CDN_DOMAIN_HLS*/
“skipAdsBtnContent”: “Skip Ad”,
“showAdVol”: true,
“VIDEOID”: “zplayer_ec2471”,
/*MINI_VIDEO*/
“viewportAutoPlay”: true,
“vidVol” : vid_vol_var,
//”adVolIncrease”: 0.25,
//”showVolIncreasement”:1,
//”adVol” : “0.15”,
“trackSlowMedia”:1,
“secondToLoadMedia”:3000,
“secondToLoadMeta”:3000,
“prerollTimeEnd” : 31,
“midrollTimeEnd” : 15,
“postrollTimeEnd” : 30,
“skipAdsBtnPos”: “bottom-left”,
“fastSeek”: {step: 5},
“userAgent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.137 Safari/537.36”,
“adLoadTimeout” : 8000
,”vastUri”: “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D640x360%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpreroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriPost” : “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D528x297%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpostroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriMid” : “https%3A%2F%2Fvideo.24h.com.vn%2Fupload%2Fhtml%2Ftempvast.xml”
,”midTime”: 10
/*FALL_BACK*/
/*PLAYLIST_ITEM*/
/*DRM_VIDEO*/
//{set_highlight_zplayer_html5}
/*ID_BANNER_SPONSOR*/
}
if (volByCookie != null) {
if (volByCookie <= 0) {
// console.log("AE volByCookie VAR set MUTED : "+volByCookie);
videoAds1Conf.muted = 1;
}
}
if(document.getElementById(parentVid).innerHTML.trim() == ""){
loadVidzplayer_ec2471();
vidLoaded = true;
}
var count_time_update_zplayer_ec2471 = 0;
function loadVidzplayer_ec2471(){
dynamicId = new Date().valueOf();
vidId = "my-video-multiple1_"+dynamicId;
videoAds1Conf.VIDEOID = vidId;
if(vidLoaded==true){
videoAds1Conf.viewportAutoPlay = false;
}
var newVideStr = videoElmStr.replace(/__VIDIDzplayer_ec2471__/g, vidId);
document.getElementById(parentVid).innerHTML = newVideStr;
if (typeof adBlockEnabled_Unique != "undefined"){
// XLCYCMHENG-42783 – player – async lib ima3 + multi video – fix bug adBlockEnabled không đồng nhất
adBlockEnabled = adBlockEnabled_Unique;
}
videozplayer_ec2471 = new videoObj(videoAds1Conf);
// console.log("AE LOAD PLAYER");
// console.log(videoAds1Conf);
// console.log("AE THIS VOLUME LOAD PLAYER muted VAR :"+videoAds1Conf.muteByUser);
//console.log("AE THIS VOLUME LOAD PLAYER is muted :"+videozplayer_ec2471.player.muted());
//console.log("AE THIS VOLUME LOAD PLAYER: "+videozplayer_ec2471.player.volume());
//console.log("AE THIS VOLUME LOAD PLAYER CURRENT VOLUME : "+current_vol_zplayer_ec2471);
if ((typeof(videoAds1Conf.muteByUser) != "undefined" && videoAds1Conf.muteByUser == 1) || (volByCookie != null && volByCookie 0) {
videoAds1Conf.vidVol = current_vol_zplayer_ec2471;
videoAds1Conf.muteByUser = 0;
} else {
videoAds1Conf.muteByUser = 1;
videoAds1Conf.vidVol = 0;
}
var videoConf = videoAds1Conf;
videoConf.viewportAutoPlay = false;
// console.log(“AE videoConf: “, videoConf);
var element = document.getElementById(videoConf.VIDEOID);
// element.parentNode.removeChild(element);
// videozplayer_ec2471 = undefined;
videozplayer_ec2471.player.dispose();
loadVidzplayer_ec2471();
});
videozplayer_ec2471.player.on(“loadeddata”, function(){
// 20220224 fix lỗi không khởi tạo đc playerInitHeight
if (this.playerInitHeight <= 0){
this.playerInitHeight = Math.round(this.getById(this.VIDEOID).getBoundingClientRect().height)
this.dbglog("this.playerInitHeight: " + this.playerInitHeight)
this.playerHasSponsorInitHeight = Math.floor(this.getById(this.VIDEOID).getBoundingClientRect().height) – 1;// làm tròn xuống & -1
this.dbglog("this.playerHasSponsorInitHeight: " + this.playerHasSponsorInitHeight);
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on("volumechange", function(){
var new_vd_volume = videozplayer_ec2471.player.volume();
// console.log("AE volume change");
// console.log("AE THIS VOLUME AFTER CHANGE: "+videozplayer_ec2471.player.volume());
// console.log("AE volume change is mute : "+videozplayer_ec2471.player.muted());
var is_vd_muted = videozplayer_ec2471.player.muted();
var check_set_cookie = false;
if (new_vd_volume 10) {
is_vd_muted = true;
}
if (is_vd_muted == true) {
// console.log(“AE is_vd_muted TRUE”);
if (current_vol_zplayer_ec2471 > 0 && count_time_update_zplayer_ec2471 > 10) {
check_set_cookie = true;
}
current_vol_zplayer_ec2471 = 0;
videozplayer_ec2471.player.muted(1);
setTimeout(function(){
videozplayer_ec2471.player.muted(1);
},300);
} else {
// console.log(“AE is_vd_muted FALSE”);
if (volByCookie <= 0 && count_time_update_zplayer_ec2471 < 5) {
check_set_cookie = false;
} else {
check_set_cookie = true;
}
current_vol_zplayer_ec2471 = new_vd_volume;
}
// console.log("AE check_set_cookie: "+check_set_cookie);
if (check_set_cookie == true) {
setCookie("videoVolumeByUser", current_vol_zplayer_ec2471, 30*24, "/", "24h.com.vn", "");// lưu cookie 30 ngày
// console.log("AE SET COOKIE");
} else {
// console.log("AE NOTTTT SET COOKIE");
}
// console.log("AE THIS VOLUME AFTER CHANGE LATER: "+current_vol_zplayer_ec2471);
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.ready(function () {
// XLCYCMHENG-38546 – [24H] Tối ưu khoảng trống trên/dưới banner sponsor_video_top / sponsor_video_botton
if (this.idBannerBottom != ""){
let vidEl = this.getById(this.VIDEOID);
let vidHeight = vidEl.getBoundingClientRect().height;
// làm tròn xuống & -1 height div chứa player
let parentHeight = Math.floor(vidHeight) – 1;
vidEl.parentNode.style.height = parentHeight + "px";
vidEl.parentNode.style.overflowY = "hidden";
// căn player lùi lên 0.7px
vidEl.style.marginTop = "-0.7px";
// 20220110: fix lỗi khi xem chế độ theater
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9{margin-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// XLCYCMHENG-44429 – 24h – Lỗi giao diện khi thu nhỏ màn hình – lỗi chiều cao theaterMod khi zoom
if (this.theaterMod && this.theaterMod.height) {
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9-custom.zoomed:not(.mini-player){padding-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// bổ sung class zoomed-out / zoomed-in theo chế độ zoom thực tế
function updateVideoZoomState() {
let vidEl = this.getById(this.VIDEOID);
const zoom = Math.round(window.devicePixelRatio * 100);
vidEl.classList.remove("zoomed", "zoomed-out", "zoomed-in");
if (zoom != 100) {
vidEl.classList.add("zoomed", zoom chưa xử lý; > 0 -> item cần nhảy tới; đã xử lý xong
let playTimeResuming = 0; // 0 -> chưa xử lý; > 0 -> thời điểm cần nhảy tới; đã xử lý xong
let useStorage = true; // sử dụng Storage để lưu trữ – không bị giới hạn số lượng, dung lượng, thời gian; không bị gửi lên server khi request trang
let minDuration = 10;
let adsTimeResuming = 0;
let adsBefore = true;
// XLCYCMHENG-39918 – player – resume watching – manager keys
// Math.floor(Date.now() / 1000) -> thời gian hiện tại (giây) theo UTC
let timeLiveKey = 720;
let updatetimeKey = “player__resume_watching__updatetime”;
// lấy item + thời gian đã xem từ cookie
let watching = “”;
if (useStorage && typeof Storage !== “undefined”){
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lấy thời điểm cập nhật key
var player__resume_watching__updatetime__get = function (key) {
if (typeof key == “undefined” || !key){return 0;}
let default_time = (new Date(“2022-10-01 00:00:00”)).getTime(); // mặc định nếu không có thời điểm cập nhật cũ
let updatetime = default_time;
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
let updatetime_all_obj = JSON.parse(updatetime_all_text);
if (typeof updatetime_all_obj == “object” && updatetime_all_obj !== null && typeof updatetime_all_obj[key] != “undefined”){
updatetime = parseInt(updatetime_all_obj[key]);
if (isNaN(updatetime)){
updatetime = default_time;
}
}
} catch (err){}
}
return updatetime;
};
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lưu thời điểm cập nhật key
var player__resume_watching__updatetime__set = function (key, remove_key) {
if (typeof key == “undefined” || !key){return false;}
if (typeof remove_key == “undefined”){
remove_key = false;
}
let updatetime_all_obj = {};
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
updatetime_all_obj = JSON.parse(updatetime_all_text);
} catch (err){}
}
if (typeof updatetime_all_obj != “object” || updatetime_all_obj === null){
updatetime_all_obj = {};
// danh sách các key có trong localStorage
let arr_all_key = Object.keys(localStorage);
if (typeof arr_all_key == “object” && arr_all_key !== null){
try {
// các key lưu lịch sử xem tiếp cũ chưa từng được đưa vào danh sách thời điểm cập nhật
let arr_key = arr_all_key.filter(key => key.match(/player__resume_watching_(.*)/));
if (typeof arr_key == “object” && arr_key !== null){
for (let i in arr_key) {
updatetime_all_obj[arr_key[i]] = Math.floor(Date.now() / 1000);
}
}
} catch (err){}
}
}
if (!remove_key){// cập nhật thời điểm cập nhật
updatetime_all_obj[key] = Math.floor(Date.now() / 1000);
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after update – error: ” + err.message);
}
} else if (typeof updatetime_all_obj[key] != “undefined”){// remove nếu có thời điểm cập nhật cũ
delete updatetime_all_obj[key];
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after delete – error: ” + err.message);
}
}
return true;
};
// lấy lịch sử đang xem
watching = localStorage.getItem(cookieKey);
console.log(“player: => get localStorage resume watching: ” + watching);
// có key -> check hết hạn key thì xóa, không dùng
if (timeLiveKey > 0 && watching !== null && watching !== “”){
let updatetime = player__resume_watching__updatetime__get(cookieKey);
if (updatetime + 60 * 60 * timeLiveKey remove expires localStorage resume watching: ” + cookieKey);
} catch (err){
console.log(“player: => remove expires localStorage resume watching: ” + cookieKey + ” – error: ” + err.message);
}
}
}
} else {
watching = getCookie(cookieKey);
console.log(“player: => get cookie resume watching: ” + watching);
}
if (!watching || typeof watching != “string”){
watching = “”;
}
if (watching != “”){
let arr_watching = watching.split(“:”);
if (arr_watching.length >= 2){
let watchingItem = parseInt(arr_watching[0]);
let watchingTime = parseFloat(arr_watching[1]);
if (!isNaN(watchingItem) && watchingItem > 0){
playItemResuming = watchingItem;// lưu item cần nhảy tới khi bắt đầu chạy video
}
if (!isNaN(watchingTime) && watchingTime > 0){
playTimeResuming = watchingTime;// lưu thời gian cần nhảy tới khi bắt đầu chạy video
adsTimeResuming = watchingTime;// lưu thời gian quảng cáo cần xử lý
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (playItemResuming > 0){
adsTimeResuming = 100000;// playlist xem từ item thứ 2 -> chặn luôn preroll và midroll
}
console.log(“player: => need resume watching to item:” + playItemResuming + “; time:” + playTimeResuming);
}
}
}
videozplayer_ec2471.player.on([
“resume-watching”,
], function (e) {
if (minDuration > 0 && typeof this.tracking != “undefined” && typeof this.tracking.video != “undefined”){
let duration = 0;
if (typeof this.tracking.video.playlistTotalMins != “undefined”){
duration = this.tracking.video.playlistTotalMins;
}
if (typeof this.tracking.video.vidDuration != “undefined”){
duration = this.tracking.video.vidDuration;
}
if (duration > 0 && duration hủy cố gắng phát tiếp
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (playItemResuming > 0 && this.isPlaylist && this.player.playlist.lastIndex() > 0){
if (playItemResuming > this.player.playlist.lastIndex()){
playItemResuming %= (this.player.playlist.lastIndex() + 1);
}
if (this.player.playlist.currentItem() != playItemResuming){
this.player.playlist.currentItem(playItemResuming);// nhảy tới item
console.log(“player:event:” + e.type + ” => resume watching item:” + this.player.playlist.currentItem());
}
}
if (currentItem != playItemResuming && playTimeResuming > 0){
// hẹn trigger vào sự kiện play/loadeddata tiếp theo (sau khi load được item) -> thay đổi time sau
this.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
return;
}
if (playTimeResuming > 0){
this.player.currentTime(playTimeResuming);
}
playItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
playTime = this.player.currentTime();
console.log(“player:event:” + e.type + ” => resume watching item:” + playItem + “; time:” + playTime);
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
if (adsBefore){
let hasPreroll = false;
if (this.isPlaylist){
let currentItem = this.player.playlist.currentItem();
let currentItemSource = this.playlistConf;
let currentSrc = currentItemSource[currentItem].sources[0];
let adTag = typeof currentSrc != “undefined” && typeof currentSrc.adTagUrl != “undefined” ? currentSrc.adTagUrl : false;
if (!adTag || adTag === “”) {
adTag = this.tempVast;
}
hasPreroll = !adTag ? false : true;
} else {
let vastUri = this.vastUri;
if (!vastUri || vastUri === “”) {
vastUri = this.tempVast;
}
hasPreroll = !vastUri ? false : true;
}
if (hasPreroll){
this.handlePreroll();
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.one([
“adend”,
“adskip”,
“nopreroll”,
“adscanceled”,
“adserror”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
// hẹn trigger vào sự kiện playing tiếp theo
this.player.one([
“playing”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on(“timeupdated”, function (e) {
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
let currentTime = this.player.currentTime();
if (currentItem != playItem || Math.abs(currentTime – playTime) > 0.5){// lưu cookie khi có sai khác trên 0.5s
playItem = currentItem;
playTime = currentTime;
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.setItem(cookieKey, playItem+”:”+playTime);
// console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime);
} catch (err){
console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime + “; err:” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey);
} else {
setCookie(cookieKey, currentItem+”:”+currentTime, (timeLiveKey > 0 ? timeLiveKey : 720), “/”, “24h.com.vn”, “”);
// console.log(“player:event:” + e.type + ” => set cookie resume watching to item:” + currentItem + “; time:” + currentTime);
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (currentItem >= playItemResuming && currentTime >= playTimeResuming + 5){
// hủy cố gắng phát tiếp từ cookie khi đã resume thành công & chạy được 1 khoảng
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on([
“seeking”,
“seeked”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi user tự thay đổi thời gian xem
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
});
videozplayer_ec2471.player.on([
“endVid”,
“onPostRollStart”,
“videoended”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi đã kết thúc
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
playItem = 0;
playTime = 0;
// xóa thông tin lịch sử đang xem
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.removeItem(cookieKey);
console.log(“player:event:” + e.type + ” => remove localStorage resume watching”);
} catch (err){
console.log(“player:event:” + e.type + ” => remove localStorage resume watching – error: ” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey, true);
} else {
setCookie(cookieKey, playItem+”:”+playTime, 1, “/”, “24h.com.vn”, “”);
console.log(“player:event:” + e.type + ” => remove cookie resume watching”);
}
});
videozplayer_ec2471.player.on([
“readyforpreroll”,
], function (e) {
if (!adsBefore && adsTimeResuming > 0){
let closeAds = “”;
if (this.player.ads.isInAdMode()){// preroll
if (adsTimeResuming > 5){// thời điểm xem tiếp quá 5s
closeAds = “preroll”;
}
} else {// midroll
let duration = this.player.duration();
if (!duration){
duration = 0;
}
if (adsTimeResuming > 0 && duration > 0 && (
(this.midTime && adsTimeResuming > this.midTime)
|| adsTimeResuming > duration / 2
)
){
closeAds = “midroll”;
}
}
if (closeAds != “”){
this.closeAd();
console.log(“player:event:” + e.type + ” => cancel ” + closeAds + ” – closeAd”);
if (this.player.paused()) {// cố khởi chạy tiếp nếu đang bị dừng
if (this.autoplayRequiresMute){// bắt buộc phải mute -> tắt tiếng để play đc luôn
this.player.muted(true);
}
this.player.play();
}
}
}
}.bind(videozplayer_ec2471));
/*RESUME_WATCHING_EVENTS-END*/
videozplayer_ec2471.player.on(“onPrerollError”, function(name) {
var objVideos = videojs(vidId+”_html5_api”);
});
videozplayer_ec2471.player.on(“AE_completed”, function(name) {
// console.log(“AE_completed AE_completed :”+current_vol_zplayer_ec2471);
var is_vd_mute = videozplayer_ec2471.player.muted();
if (is_vd_mute == true) {
//videozplayer_ec2471.player.volume(0);
setTimeout(function(){
videozplayer_ec2471.player.muted(1);
// console.log(“AE_completed AE_completed set MUTED”);
},400);
}
});
videozplayer_ec2471.player.on(“onPlay”, function(name) {
// console.log(“onPlay AE_started AE_started :”+current_vol_zplayer_ec2471);
var is_vd_mute = videozplayer_ec2471.player.muted();
if (is_vd_mute == true) {
if (current_vol_zplayer_ec2471 > 0) {
// console.log(“AE SET VOLUME 1111111”);
videozplayer_ec2471.player.volume(current_vol_zplayer_ec2471);
}
videozplayer_ec2471.player.muted(1);
// console.log(“AE MUTE LOAD PLAYER ACTION SET MUTE 111111: “);
}
// console.log(“AE THIS VOLUME is muted :”+videozplayer_ec2471.player.muted());
// console.log(“AE THIS VOLUME: “+videozplayer_ec2471.player.volume());
// begin 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘play’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
// end 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
//Begin 14-07-2017 : Thangnb tracking_google_tag_manager_video
//End 14-07-2017 : Thangnb tracking_google_tag_manager_video
send_tracking_video(”, ‘none’, 0, 0, ”, ‘pc’, ”, ‘no’, ‘no’, 3, ‘video_noi_dung’);
});
// Begin 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
videozplayer_ec2471.player.on(“playerMinimized”, function(name) {
// console.log(“Listener playerMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”157px”);
$(“#backpage”).css(“bottom”,”200px”);
}
});
videozplayer_ec2471.player.on(“playerUnMinimized”, function(name) {
// console.log(“Listener playerUnMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
videozplayer_ec2471.player.on(“miniPlayerClosed”, function(name) {
// console.log(“Listener miniPlayerClosed: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
// End 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
var v_event_tracking_impression_prerollzplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_ec2471.player.on(“AE_impression”, function(name) {
// Gọi GA load video
if(v_event_tracking_impression_prerollzplayer_ec2471){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_ec2471_ga_preroll”);
if(document.getElementById(“link_ga_tracking_impression_preroll_zplayer_ec2471”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘impression’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_event_tracking_click_prerollzplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_ec2471.player.on(“AE_clicked”, function(name) {
// Gọi GA load video
if(v_event_tracking_click_prerollzplayer_ec2471){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_ec2471_ga_preroll”);
if(document.getElementById(“link_ga_tracking_click_preroll_zplayer_ec2471”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘ads_click’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_err_log_1zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_error1”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_ec2471.player.on(“MEDIA_ERROR_1″, function (name) {
// Gọi GA load video
if(v_err_log_1zplayer_ec2471){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_1’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_2zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_error2”);
videozplayer_ec2471.player.on(“MEDIA_ERROR_2″, function (name) {
// Gọi GA load video
if(v_err_log_2zplayer_ec2471){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_2’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_3zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_error3”);
videozplayer_ec2471.player.on(“MEDIA_ERROR_3″, function (name) {
// Gọi GA load video
if(v_err_log_3zplayer_ec2471){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_3’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_4zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_error4”);
videozplayer_ec2471.player.on(“MEDIA_ERROR_4″, function (name) {
// Gọi GA load video
if(v_err_log_4zplayer_ec2471){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_4’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_5zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_error5”);
videozplayer_ec2471.player.on(“MEDIA_ERROR_5″, function (name) {
// Gọi GA load video
if(v_err_log_5zplayer_ec2471){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_5’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_1”, function(){
console.log(“track_slow_playlist_next_1”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24711 = document.getElementById(“link_slow_playlist_next_zplayer_ec24711”);
if(v_track_slow_playlist_zplayer_ec24711){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_2”, function(){
console.log(“track_slow_playlist_next_2”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24712 = document.getElementById(“link_slow_playlist_next_zplayer_ec24712”);
if(v_track_slow_playlist_zplayer_ec24712){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_3”, function(){
console.log(“track_slow_playlist_next_3”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24713 = document.getElementById(“link_slow_playlist_next_zplayer_ec24713”);
if(v_track_slow_playlist_zplayer_ec24713){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_4”, function(){
console.log(“track_slow_playlist_next_4”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24714 = document.getElementById(“link_slow_playlist_next_zplayer_ec24714”);
if(v_track_slow_playlist_zplayer_ec24714){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_5”, function(){
console.log(“track_slow_playlist_next_5”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24715 = document.getElementById(“link_slow_playlist_next_zplayer_ec24715”);
if(v_track_slow_playlist_zplayer_ec24715){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_6”, function(){
console.log(“track_slow_playlist_next_6”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24716 = document.getElementById(“link_slow_playlist_next_zplayer_ec24716”);
if(v_track_slow_playlist_zplayer_ec24716){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_7”, function(){
console.log(“track_slow_playlist_next_7”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24717 = document.getElementById(“link_slow_playlist_next_zplayer_ec24717”);
if(v_track_slow_playlist_zplayer_ec24717){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_8”, function(){
console.log(“track_slow_playlist_next_8”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24718 = document.getElementById(“link_slow_playlist_next_zplayer_ec24718”);
if(v_track_slow_playlist_zplayer_ec24718){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_9”, function(){
console.log(“track_slow_playlist_next_9”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec24719 = document.getElementById(“link_slow_playlist_next_zplayer_ec24719”);
if(v_track_slow_playlist_zplayer_ec24719){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“track_slow_playlist_next_10”, function(){
console.log(“track_slow_playlist_next_10”);
$(“
“).insertBefore(“#zplayer_ec2471_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_ec247110 = document.getElementById(“link_slow_playlist_next_zplayer_ec247110”);
if(v_track_slow_playlist_zplayer_ec247110){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_ec2471.player.on(“timeupdated”, function () {
if (count_time_update_zplayer_ec2471 < 50) {
count_time_update_zplayer_ec2471++;
// console.log(“AE TIME UPDATE: “+count_time_update_zplayer_ec2471);
}
if(v_load_recommend_boxzplayer_ec2471 && typeof(v_thoi_luong_hien_thi) != “undefined” && v_thoi_luong_hien_thi != “”){
try{
var v_time_current = videozplayer_ec2471.player.currentTime();
if(v_time_current > 0){
if(v_time_current >= v_thoi_luong_hien_thi){
function getJsonRecomment(url,callback){
if(url == “”){
return “”;
}
dynamicIdLive = new Date().valueOf();
url = url+dynamicIdLive;
var xhr = new XMLHttpRequest();
// Get url
xhr.open(“GET”, url, true);
// Kiểu phản hồi
xhr.responseType = “json”;
xhr.timeout = 50000; // Set timeout to 2 seconds
xhr.ontimeout = function () {console.log(url+” – timeout”);}
// Load data
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
callback(xhr.response);
}else{
console.log(“B3: status != 200”);
}
};
xhr.send();
}
if(typeof v_url_json_data_recomment != “undefined”){
getJsonRecomment(v_url_json_data_recomment,function(v_object_recomend){
if(typeof v_object_recomend != “undefined” && parseInt(v_object_recomend.length) > 0){
var recomment_arr_video_ngay_hien_tai = _getStorageJson24h(“recomment_video_ngay_hien_tai_data_news_id”);
var recomment_video_ngay_hom_qua_data_news_id = _getStorageJson24h(“recomment_video_ngay_hom_qua_data_news_id”);
// Lặp để loại bỏ những bài đang xem
var arr_recomend_video = new Array();
var k=0;
var v_so_luong_tin_hien_thi = parseInt(v_object_recomend[0][“c_tong_so_luong_tin_hien_thi”]);
for(j=0;j 0){
if(v_recomment_news_id== parseInt(v_object_recomend[j][“c_new_id”])){
continue;
}
if(typeof(recomment_arr_video_ngay_hien_tai) != “undefined” && recomment_arr_video_ngay_hien_tai.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
if(typeof(recomment_video_ngay_hom_qua_data_news_id) != “undefined” && recomment_video_ngay_hom_qua_data_news_id.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
}
arr_recomend_video[k] = v_object_recomend[j];
k++;
if(k >= v_so_luong_tin_hien_thi){
break;
}
}
var v_total_page_recommend =0;
v_total_page_recommend = parseInt(Math.ceil(parseInt(arr_recomend_video.length)/parseInt(v_object_recomend[0][“c_number_items”])));
// Tao HTML video recommend
arr_recomend_video[0][“c_tracking_onclick”] = “”;
arr_recomend_video[0][“c_tracking_onload”] = “”;
arr_recomend_video[0][“c_tracking_onload_gatag”] = “”;
var v_html_recomend = tao_html_recommend_video_tu_object(arr_recomend_video,”zplayer_ec2471″);
// Gắn HTML vào chuỗi
if(v_html_recomend !=””){
// Nếu tồn tại video highlight
if ($(“#vjs-marker-tableinfo-zplayer_ec2471”).length) {
$(“#vjs-marker-tableinfo-zplayer_ec2471”).after(v_html_recomend);
} else {
if ($(“#zplayer_ec2471_ga_preroll”).length) {
$(“#zplayer_ec2471_ga_preroll”).before(v_html_recomend);
}
}
// Hiển thị dạng slide
if ($(“#box_recommend_zplayer_ec2471”).length) {
$(“#box_recommend_zplayer_ec2471”).show(1000);
setTimeout(function(){
create_slide_page_number_recommend_video_json(“swiper_recommend_v2018zplayer_ec2471”, “swpier_container_zplayer_ec2471″,”swiper_active_slide_zplayer_ec2471”, “pagination-zplayer_ec2471″,”wrapper_zplayer_ec2471”,v_total_page_recommend, “swiper-slide slide_zplayer_ec2471”, “prvVid_recommendzplayer_ec2471”, “nxtVid_recommendzplayer_ec2471”);
$(“#box_recommend_zplayer_ec2471”).css(“height”, “”);
}, 900);
}
}
}
});
}
v_load_recommend_boxzplayer_ec2471 = false;
}
}
}catch(e){
console.log([“Errors”, e]);
}
}
});
videozplayer_ec2471.player.on(“MEDIA_SLOW_WAITING”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_waiting_zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_media_slow_waiting”);
if(v_slow_waiting_zplayer_ec2471){
//đổi ms về s
v_so_giay_load = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_waiting’, ”, ”, 6, v_so_giay_load);
}
//console.log(“listener MEDIA_SLOW_WAITING: “);
});
videozplayer_ec2471.player.on(“MEDIA_SLOW_METADATA”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_metadata_zplayer_ec2471 = document.getElementById(“zplayer_ec2471_ga_media_slow_metadata”);
if(v_slow_metadata_zplayer_ec2471){
//đổi ms về s
v_so_giay_load_metadata = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_metadata’, ”, ”, 6, v_so_giay_load_metadata);
}
//console.log(“listener MEDIA_SLOW_METADATA: “);
});
videozplayer_ec2471.player.on(‘onPrerollStart’, function(name){
//console.log(‘ON PREROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘preroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_ec2471.player.on(‘onOverlayStart’, function(name){
//console.log(‘ON OVERLAY START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘overlay_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_ec2471.player.on(‘onPostRollStart’, function(name){
//console.log(‘ON POSTROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘postroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});
videozplayer_ec2471.player.on([
“play”,
“playing”,
“adstart”,
“adplaying”,
], function (evt, data) {
if (typeof stop_video_news_live == “function”){
stop_video_news_live(“___”);
}
});
videozplayer_ec2471.player.one([
“play”,
], function (e) {
let vastUri = this.vastUri;
let vastUriPost = this.vastUriPost;
let vastUriMid = this.vastUriMid;
// Neu co cau hinh autoplay nhung trình duyet k cho phep auto play thi gan tham so bang vpmute = 0
if(this.viewportAutoPlay == true && this.willAutoplay === false){
if(vastUri != “”){
this.vastUri = vastUri + “&vpmute=0”;
}
if(vastUriPost != “”){
this.vastUriPost = vastUriPost + “&vpmute=0”;
}
if(vastUriMid != “”){
this.vastUriMid = vastUriMid + “&vpmute=0”;
}
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on([
“contentchanged”,
], function (e) {
this.player.one([
“playing”,
], function (e) {
var currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
// đợi player xử lý 1s mới bắt đầu check xem có chạy được không
setTimeout(function(){
// đã thay đổi item –> bỏ qua
var chk_currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (chk_currentItem != currentItem){
return;
}
var has_timeupdate = false;
this.player.one([
“timeupdate”,
], function (e) {
has_timeupdate = true;
});
setTimeout(function(){
if (has_timeupdate){
return;
}
if (this.player.paused()){
return;
}
this.dbglog(“timeupdate_missing –> try to restart”);
this.player.pause();
setTimeout(function(){
this.player.play();
}.bind(this), 100);
}.bind(this), 300);
}.bind(this), 1000);
}.bind(this));
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on(“onStop”, function(name) {
//console.log(“listener onStop: “);
});
videozplayer_ec2471.player.on(“onFullscreen”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý bỏ neo khi mở chế độ fullscreen
// đang ở chế độ neo
if (this.hasClass(“mini-player”)){
this.removeClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerHideCloseBtn();
this.unminimizeOnFullscreen = true;
}
}.bind(videozplayer_ec2471));
videozplayer_ec2471.player.on(“onFullscreenOff”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý neo lại khi thoát chế độ fullscreen
// từng bỏ neo khi mở chế độ fullscreen
if (typeof this.unminimizeOnFullscreen != “undefined” && this.unminimizeOnFullscreen){
this.addClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerDisplayCloseBtn();
this.unminimizeOnFullscreen = false;
}
}.bind(videozplayer_ec2471));
}
videoAdsInitzplayer_ec2471 = true;
}
// Ga video load luôn được chạy
window.addEventListener(“load”, function(){});window.addEventListener(“load”, function(){send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘view’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
function inViewport( element ){
// Get the elements position relative to the viewport
var bb = element.getBoundingClientRect();
// Check if the element is outside the viewport
// Then invert the returned value because you want to know the opposite
return !(bb.top > innerHeight || bb.bottom < 0);
}
var zplayer_ec2471VpElm = document.getElementById( “zplayer_ec2471” );
var viszplayer_ec2471 = (function () {
var stateKey, eventKey, keys = {
hidden: “visibilitychange”,
webkitHidden: “webkitvisibilitychange”,
mozHidden: “mozvisibilitychange”,
msHidden: “msvisibilitychange”
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function (c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
var videoAds1Elmzplayer_ec2471 = document.getElementById(“v-24hContainer_zplayer_ec2471”);
document.addEventListener(“DOMContentLoaded”, function () {
if(videoAds1Elmzplayer_ec2471){
var videoAdsInitzplayer_ec2471 = false;
var checkTabActivezplayer_ec2471 = setInterval(function () {
if (inViewport(videoAds1Elmzplayer_ec2471) && viszplayer_ec2471() && !videoAdsInitzplayer_ec2471 && typeof(window.videojs) !== “undefined” && (typeof(google) !== “undefined” || adBlockCheckedStatus) && videoObj) {
initvideozplayer_ec2471();
clearInterval(checkTabActivezplayer_ec2471);
}
// 20230817 fix lỗi lần đầu vào đợi onload check chặn quảng cáo quá lâu
// XLCYCMHENG-42783 – async lib ima3 -> tăng thời gian chờ load ima3
else if (typeof videoObjRoot != “undefined” && videoObjRoot){
if (typeof videoAdsInitzplayer_ec2471_fix_AdBlockCheck == “undefined”){
setTimeout(function(){
if (typeof adBlockCheckedStatus != “undefined” && !adBlockCheckedStatus){
adBlockCheckedStatus = true;
adBlockEnabled = false;
}
}, 2000);
videoAdsInitzplayer_ec2471_fix_AdBlockCheck = true;
}
}
}, 100);
}
}, false);
//]]>
//
Xe cộ chờ thoát khỏi đoạn ùn tắc trên đường Cầu Giấy giao Khúc Thừa Dụ. Video: Lộc Chung
9h45
Nút giao Mai Dịch đoạn qua cầu vượt gần 10h sáng một số đoạn ùn ứ do phương tiện đổ về đông, cộ di chuyển chậm trên đường Hồ Tùng Mậu. Nút giao kết nối đường Hồ Tùng Mậu – Phạm Văn Đồng – Xuân Thủy – Phạm Hùng ngày thường ghi nhận lưu lượng xe lớn, ngày mưa thường xảy ra ùn tắc. Khu vực này tập trung nhiều công sở trên các phố Duy Tân, Cầu Giấy, cùng hàng loạt trường đại học như Thương Mại, Sư phạm Hà Nội, Đại học Quốc gia Hà Nội và Học viện Báo chí và Tuyên Truyền.
Ùn ứ kéo dài trước cổng Đại học Thương Mại trên đường Hồ Tùng Mậu. Ảnh: Thanh Hải
Giao thông tại nút giao Mai Dịch lúc gần 10h. Ảnh: Lộc Chung
// 0) {
// console.log(“AE volByCookie VAR : “+volByCookie);
vid_vol_var = volByCookie;
}
}
// console.log(“AE VIDVOL VAR : “+vid_vol_var);
var vidLoaded = false,
dynamicId,
vidId,
parentVid = “v-24hContainer_zplayer_079252”,
videoElmStr = ‘
‘+
‘To view this video please enable JavaScript, and consider upgrading to a web browser that ‘+
‘supports HTML5 video ‘+
‘ ‘ +
”,
videozplayer_079252,
videoAds1Conf = {
“poster”: “https://cdn.24h.com.vn/upload/4-2025/images/2025-10-14/1760411090——–ng-h—-t–ng-m—u—n–t-giao-mai-d—ch.jpg”,
“offsetWatchPercent”: 20,
“stopOtherOnPlay”: true,
“parentVid”: parentVid,
“offHighlightOnBannerBottom”:false,
“vidErrorLog”: 1,
“skipAble”: true,
“skipTime”: 5000,
/*CDN_DOMAIN_HLS*/
“skipAdsBtnContent”: “Skip Ad”,
“showAdVol”: true,
“VIDEOID”: “zplayer_079252”,
/*MINI_VIDEO*/
“viewportAutoPlay”: true,
“vidVol” : vid_vol_var,
//”adVolIncrease”: 0.25,
//”showVolIncreasement”:1,
//”adVol” : “0.15”,
“trackSlowMedia”:1,
“secondToLoadMedia”:3000,
“secondToLoadMeta”:3000,
“prerollTimeEnd” : 31,
“midrollTimeEnd” : 15,
“postrollTimeEnd” : 30,
“skipAdsBtnPos”: “bottom-left”,
“fastSeek”: {step: 5},
“userAgent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.137 Safari/537.36”,
“adLoadTimeout” : 8000
,”vastUri”: “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D640x360%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpreroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriPost” : “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D528x297%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpostroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriMid” : “https%3A%2F%2Fvideo.24h.com.vn%2Fupload%2Fhtml%2Ftempvast.xml”
,”midTime”: 10
/*FALL_BACK*/
/*PLAYLIST_ITEM*/
/*DRM_VIDEO*/
//{set_highlight_zplayer_html5}
/*ID_BANNER_SPONSOR*/
}
if (volByCookie != null) {
if (volByCookie <= 0) {
// console.log("AE volByCookie VAR set MUTED : "+volByCookie);
videoAds1Conf.muted = 1;
}
}
if(document.getElementById(parentVid).innerHTML.trim() == ""){
loadVidzplayer_079252();
vidLoaded = true;
}
var count_time_update_zplayer_079252 = 0;
function loadVidzplayer_079252(){
dynamicId = new Date().valueOf();
vidId = "my-video-multiple1_"+dynamicId;
videoAds1Conf.VIDEOID = vidId;
if(vidLoaded==true){
videoAds1Conf.viewportAutoPlay = false;
}
var newVideStr = videoElmStr.replace(/__VIDIDzplayer_079252__/g, vidId);
document.getElementById(parentVid).innerHTML = newVideStr;
if (typeof adBlockEnabled_Unique != "undefined"){
// XLCYCMHENG-42783 – player – async lib ima3 + multi video – fix bug adBlockEnabled không đồng nhất
adBlockEnabled = adBlockEnabled_Unique;
}
videozplayer_079252 = new videoObj(videoAds1Conf);
// console.log("AE LOAD PLAYER");
// console.log(videoAds1Conf);
// console.log("AE THIS VOLUME LOAD PLAYER muted VAR :"+videoAds1Conf.muteByUser);
//console.log("AE THIS VOLUME LOAD PLAYER is muted :"+videozplayer_079252.player.muted());
//console.log("AE THIS VOLUME LOAD PLAYER: "+videozplayer_079252.player.volume());
//console.log("AE THIS VOLUME LOAD PLAYER CURRENT VOLUME : "+current_vol_zplayer_079252);
if ((typeof(videoAds1Conf.muteByUser) != "undefined" && videoAds1Conf.muteByUser == 1) || (volByCookie != null && volByCookie 0) {
videoAds1Conf.vidVol = current_vol_zplayer_079252;
videoAds1Conf.muteByUser = 0;
} else {
videoAds1Conf.muteByUser = 1;
videoAds1Conf.vidVol = 0;
}
var videoConf = videoAds1Conf;
videoConf.viewportAutoPlay = false;
// console.log(“AE videoConf: “, videoConf);
var element = document.getElementById(videoConf.VIDEOID);
// element.parentNode.removeChild(element);
// videozplayer_079252 = undefined;
videozplayer_079252.player.dispose();
loadVidzplayer_079252();
});
videozplayer_079252.player.on(“loadeddata”, function(){
// 20220224 fix lỗi không khởi tạo đc playerInitHeight
if (this.playerInitHeight <= 0){
this.playerInitHeight = Math.round(this.getById(this.VIDEOID).getBoundingClientRect().height)
this.dbglog("this.playerInitHeight: " + this.playerInitHeight)
this.playerHasSponsorInitHeight = Math.floor(this.getById(this.VIDEOID).getBoundingClientRect().height) – 1;// làm tròn xuống & -1
this.dbglog("this.playerHasSponsorInitHeight: " + this.playerHasSponsorInitHeight);
}
}.bind(videozplayer_079252));
videozplayer_079252.player.on("volumechange", function(){
var new_vd_volume = videozplayer_079252.player.volume();
// console.log("AE volume change");
// console.log("AE THIS VOLUME AFTER CHANGE: "+videozplayer_079252.player.volume());
// console.log("AE volume change is mute : "+videozplayer_079252.player.muted());
var is_vd_muted = videozplayer_079252.player.muted();
var check_set_cookie = false;
if (new_vd_volume 10) {
is_vd_muted = true;
}
if (is_vd_muted == true) {
// console.log(“AE is_vd_muted TRUE”);
if (current_vol_zplayer_079252 > 0 && count_time_update_zplayer_079252 > 10) {
check_set_cookie = true;
}
current_vol_zplayer_079252 = 0;
videozplayer_079252.player.muted(1);
setTimeout(function(){
videozplayer_079252.player.muted(1);
},300);
} else {
// console.log(“AE is_vd_muted FALSE”);
if (volByCookie <= 0 && count_time_update_zplayer_079252 < 5) {
check_set_cookie = false;
} else {
check_set_cookie = true;
}
current_vol_zplayer_079252 = new_vd_volume;
}
// console.log("AE check_set_cookie: "+check_set_cookie);
if (check_set_cookie == true) {
setCookie("videoVolumeByUser", current_vol_zplayer_079252, 30*24, "/", "24h.com.vn", "");// lưu cookie 30 ngày
// console.log("AE SET COOKIE");
} else {
// console.log("AE NOTTTT SET COOKIE");
}
// console.log("AE THIS VOLUME AFTER CHANGE LATER: "+current_vol_zplayer_079252);
}.bind(videozplayer_079252));
videozplayer_079252.player.ready(function () {
// XLCYCMHENG-38546 – [24H] Tối ưu khoảng trống trên/dưới banner sponsor_video_top / sponsor_video_botton
if (this.idBannerBottom != ""){
let vidEl = this.getById(this.VIDEOID);
let vidHeight = vidEl.getBoundingClientRect().height;
// làm tròn xuống & -1 height div chứa player
let parentHeight = Math.floor(vidHeight) – 1;
vidEl.parentNode.style.height = parentHeight + "px";
vidEl.parentNode.style.overflowY = "hidden";
// căn player lùi lên 0.7px
vidEl.style.marginTop = "-0.7px";
// 20220110: fix lỗi khi xem chế độ theater
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9{margin-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// XLCYCMHENG-44429 – 24h – Lỗi giao diện khi thu nhỏ màn hình – lỗi chiều cao theaterMod khi zoom
if (this.theaterMod && this.theaterMod.height) {
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9-custom.zoomed:not(.mini-player){padding-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// bổ sung class zoomed-out / zoomed-in theo chế độ zoom thực tế
function updateVideoZoomState() {
let vidEl = this.getById(this.VIDEOID);
const zoom = Math.round(window.devicePixelRatio * 100);
vidEl.classList.remove("zoomed", "zoomed-out", "zoomed-in");
if (zoom != 100) {
vidEl.classList.add("zoomed", zoom chưa xử lý; > 0 -> item cần nhảy tới; đã xử lý xong
let playTimeResuming = 0; // 0 -> chưa xử lý; > 0 -> thời điểm cần nhảy tới; đã xử lý xong
let useStorage = true; // sử dụng Storage để lưu trữ – không bị giới hạn số lượng, dung lượng, thời gian; không bị gửi lên server khi request trang
let minDuration = 10;
let adsTimeResuming = 0;
let adsBefore = true;
// XLCYCMHENG-39918 – player – resume watching – manager keys
// Math.floor(Date.now() / 1000) -> thời gian hiện tại (giây) theo UTC
let timeLiveKey = 720;
let updatetimeKey = “player__resume_watching__updatetime”;
// lấy item + thời gian đã xem từ cookie
let watching = “”;
if (useStorage && typeof Storage !== “undefined”){
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lấy thời điểm cập nhật key
var player__resume_watching__updatetime__get = function (key) {
if (typeof key == “undefined” || !key){return 0;}
let default_time = (new Date(“2022-10-01 00:00:00”)).getTime(); // mặc định nếu không có thời điểm cập nhật cũ
let updatetime = default_time;
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
let updatetime_all_obj = JSON.parse(updatetime_all_text);
if (typeof updatetime_all_obj == “object” && updatetime_all_obj !== null && typeof updatetime_all_obj[key] != “undefined”){
updatetime = parseInt(updatetime_all_obj[key]);
if (isNaN(updatetime)){
updatetime = default_time;
}
}
} catch (err){}
}
return updatetime;
};
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lưu thời điểm cập nhật key
var player__resume_watching__updatetime__set = function (key, remove_key) {
if (typeof key == “undefined” || !key){return false;}
if (typeof remove_key == “undefined”){
remove_key = false;
}
let updatetime_all_obj = {};
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
updatetime_all_obj = JSON.parse(updatetime_all_text);
} catch (err){}
}
if (typeof updatetime_all_obj != “object” || updatetime_all_obj === null){
updatetime_all_obj = {};
// danh sách các key có trong localStorage
let arr_all_key = Object.keys(localStorage);
if (typeof arr_all_key == “object” && arr_all_key !== null){
try {
// các key lưu lịch sử xem tiếp cũ chưa từng được đưa vào danh sách thời điểm cập nhật
let arr_key = arr_all_key.filter(key => key.match(/player__resume_watching_(.*)/));
if (typeof arr_key == “object” && arr_key !== null){
for (let i in arr_key) {
updatetime_all_obj[arr_key[i]] = Math.floor(Date.now() / 1000);
}
}
} catch (err){}
}
}
if (!remove_key){// cập nhật thời điểm cập nhật
updatetime_all_obj[key] = Math.floor(Date.now() / 1000);
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after update – error: ” + err.message);
}
} else if (typeof updatetime_all_obj[key] != “undefined”){// remove nếu có thời điểm cập nhật cũ
delete updatetime_all_obj[key];
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after delete – error: ” + err.message);
}
}
return true;
};
// lấy lịch sử đang xem
watching = localStorage.getItem(cookieKey);
console.log(“player: => get localStorage resume watching: ” + watching);
// có key -> check hết hạn key thì xóa, không dùng
if (timeLiveKey > 0 && watching !== null && watching !== “”){
let updatetime = player__resume_watching__updatetime__get(cookieKey);
if (updatetime + 60 * 60 * timeLiveKey remove expires localStorage resume watching: ” + cookieKey);
} catch (err){
console.log(“player: => remove expires localStorage resume watching: ” + cookieKey + ” – error: ” + err.message);
}
}
}
} else {
watching = getCookie(cookieKey);
console.log(“player: => get cookie resume watching: ” + watching);
}
if (!watching || typeof watching != “string”){
watching = “”;
}
if (watching != “”){
let arr_watching = watching.split(“:”);
if (arr_watching.length >= 2){
let watchingItem = parseInt(arr_watching[0]);
let watchingTime = parseFloat(arr_watching[1]);
if (!isNaN(watchingItem) && watchingItem > 0){
playItemResuming = watchingItem;// lưu item cần nhảy tới khi bắt đầu chạy video
}
if (!isNaN(watchingTime) && watchingTime > 0){
playTimeResuming = watchingTime;// lưu thời gian cần nhảy tới khi bắt đầu chạy video
adsTimeResuming = watchingTime;// lưu thời gian quảng cáo cần xử lý
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (playItemResuming > 0){
adsTimeResuming = 100000;// playlist xem từ item thứ 2 -> chặn luôn preroll và midroll
}
console.log(“player: => need resume watching to item:” + playItemResuming + “; time:” + playTimeResuming);
}
}
}
videozplayer_079252.player.on([
“resume-watching”,
], function (e) {
if (minDuration > 0 && typeof this.tracking != “undefined” && typeof this.tracking.video != “undefined”){
let duration = 0;
if (typeof this.tracking.video.playlistTotalMins != “undefined”){
duration = this.tracking.video.playlistTotalMins;
}
if (typeof this.tracking.video.vidDuration != “undefined”){
duration = this.tracking.video.vidDuration;
}
if (duration > 0 && duration hủy cố gắng phát tiếp
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (playItemResuming > 0 && this.isPlaylist && this.player.playlist.lastIndex() > 0){
if (playItemResuming > this.player.playlist.lastIndex()){
playItemResuming %= (this.player.playlist.lastIndex() + 1);
}
if (this.player.playlist.currentItem() != playItemResuming){
this.player.playlist.currentItem(playItemResuming);// nhảy tới item
console.log(“player:event:” + e.type + ” => resume watching item:” + this.player.playlist.currentItem());
}
}
if (currentItem != playItemResuming && playTimeResuming > 0){
// hẹn trigger vào sự kiện play/loadeddata tiếp theo (sau khi load được item) -> thay đổi time sau
this.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
return;
}
if (playTimeResuming > 0){
this.player.currentTime(playTimeResuming);
}
playItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
playTime = this.player.currentTime();
console.log(“player:event:” + e.type + ” => resume watching item:” + playItem + “; time:” + playTime);
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}
}.bind(videozplayer_079252));
videozplayer_079252.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
if (adsBefore){
let hasPreroll = false;
if (this.isPlaylist){
let currentItem = this.player.playlist.currentItem();
let currentItemSource = this.playlistConf;
let currentSrc = currentItemSource[currentItem].sources[0];
let adTag = typeof currentSrc != “undefined” && typeof currentSrc.adTagUrl != “undefined” ? currentSrc.adTagUrl : false;
if (!adTag || adTag === “”) {
adTag = this.tempVast;
}
hasPreroll = !adTag ? false : true;
} else {
let vastUri = this.vastUri;
if (!vastUri || vastUri === “”) {
vastUri = this.tempVast;
}
hasPreroll = !vastUri ? false : true;
}
if (hasPreroll){
this.handlePreroll();
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}
}.bind(videozplayer_079252));
videozplayer_079252.player.one([
“adend”,
“adskip”,
“nopreroll”,
“adscanceled”,
“adserror”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
// hẹn trigger vào sự kiện playing tiếp theo
this.player.one([
“playing”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
}
}.bind(videozplayer_079252));
videozplayer_079252.player.on(“timeupdated”, function (e) {
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
let currentTime = this.player.currentTime();
if (currentItem != playItem || Math.abs(currentTime – playTime) > 0.5){// lưu cookie khi có sai khác trên 0.5s
playItem = currentItem;
playTime = currentTime;
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.setItem(cookieKey, playItem+”:”+playTime);
// console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime);
} catch (err){
console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime + “; err:” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey);
} else {
setCookie(cookieKey, currentItem+”:”+currentTime, (timeLiveKey > 0 ? timeLiveKey : 720), “/”, “24h.com.vn”, “”);
// console.log(“player:event:” + e.type + ” => set cookie resume watching to item:” + currentItem + “; time:” + currentTime);
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (currentItem >= playItemResuming && currentTime >= playTimeResuming + 5){
// hủy cố gắng phát tiếp từ cookie khi đã resume thành công & chạy được 1 khoảng
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}.bind(videozplayer_079252));
videozplayer_079252.player.on([
“seeking”,
“seeked”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi user tự thay đổi thời gian xem
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
});
videozplayer_079252.player.on([
“endVid”,
“onPostRollStart”,
“videoended”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi đã kết thúc
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
playItem = 0;
playTime = 0;
// xóa thông tin lịch sử đang xem
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.removeItem(cookieKey);
console.log(“player:event:” + e.type + ” => remove localStorage resume watching”);
} catch (err){
console.log(“player:event:” + e.type + ” => remove localStorage resume watching – error: ” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey, true);
} else {
setCookie(cookieKey, playItem+”:”+playTime, 1, “/”, “24h.com.vn”, “”);
console.log(“player:event:” + e.type + ” => remove cookie resume watching”);
}
});
videozplayer_079252.player.on([
“readyforpreroll”,
], function (e) {
if (!adsBefore && adsTimeResuming > 0){
let closeAds = “”;
if (this.player.ads.isInAdMode()){// preroll
if (adsTimeResuming > 5){// thời điểm xem tiếp quá 5s
closeAds = “preroll”;
}
} else {// midroll
let duration = this.player.duration();
if (!duration){
duration = 0;
}
if (adsTimeResuming > 0 && duration > 0 && (
(this.midTime && adsTimeResuming > this.midTime)
|| adsTimeResuming > duration / 2
)
){
closeAds = “midroll”;
}
}
if (closeAds != “”){
this.closeAd();
console.log(“player:event:” + e.type + ” => cancel ” + closeAds + ” – closeAd”);
if (this.player.paused()) {// cố khởi chạy tiếp nếu đang bị dừng
if (this.autoplayRequiresMute){// bắt buộc phải mute -> tắt tiếng để play đc luôn
this.player.muted(true);
}
this.player.play();
}
}
}
}.bind(videozplayer_079252));
/*RESUME_WATCHING_EVENTS-END*/
videozplayer_079252.player.on(“onPrerollError”, function(name) {
var objVideos = videojs(vidId+”_html5_api”);
});
videozplayer_079252.player.on(“AE_completed”, function(name) {
// console.log(“AE_completed AE_completed :”+current_vol_zplayer_079252);
var is_vd_mute = videozplayer_079252.player.muted();
if (is_vd_mute == true) {
//videozplayer_079252.player.volume(0);
setTimeout(function(){
videozplayer_079252.player.muted(1);
// console.log(“AE_completed AE_completed set MUTED”);
},400);
}
});
videozplayer_079252.player.on(“onPlay”, function(name) {
// console.log(“onPlay AE_started AE_started :”+current_vol_zplayer_079252);
var is_vd_mute = videozplayer_079252.player.muted();
if (is_vd_mute == true) {
if (current_vol_zplayer_079252 > 0) {
// console.log(“AE SET VOLUME 1111111”);
videozplayer_079252.player.volume(current_vol_zplayer_079252);
}
videozplayer_079252.player.muted(1);
// console.log(“AE MUTE LOAD PLAYER ACTION SET MUTE 111111: “);
}
// console.log(“AE THIS VOLUME is muted :”+videozplayer_079252.player.muted());
// console.log(“AE THIS VOLUME: “+videozplayer_079252.player.volume());
// begin 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘play’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
// end 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
//Begin 14-07-2017 : Thangnb tracking_google_tag_manager_video
//End 14-07-2017 : Thangnb tracking_google_tag_manager_video
send_tracking_video(”, ‘none’, 0, 0, ”, ‘pc’, ”, ‘no’, ‘no’, 3, ‘video_noi_dung’);
});
// Begin 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
videozplayer_079252.player.on(“playerMinimized”, function(name) {
// console.log(“Listener playerMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”157px”);
$(“#backpage”).css(“bottom”,”200px”);
}
});
videozplayer_079252.player.on(“playerUnMinimized”, function(name) {
// console.log(“Listener playerUnMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
videozplayer_079252.player.on(“miniPlayerClosed”, function(name) {
// console.log(“Listener miniPlayerClosed: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
// End 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
var v_event_tracking_impression_prerollzplayer_079252 = document.getElementById(“zplayer_079252_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_079252.player.on(“AE_impression”, function(name) {
// Gọi GA load video
if(v_event_tracking_impression_prerollzplayer_079252){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_079252_ga_preroll”);
if(document.getElementById(“link_ga_tracking_impression_preroll_zplayer_079252”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘impression’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_event_tracking_click_prerollzplayer_079252 = document.getElementById(“zplayer_079252_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_079252.player.on(“AE_clicked”, function(name) {
// Gọi GA load video
if(v_event_tracking_click_prerollzplayer_079252){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_079252_ga_preroll”);
if(document.getElementById(“link_ga_tracking_click_preroll_zplayer_079252”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘ads_click’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_err_log_1zplayer_079252 = document.getElementById(“zplayer_079252_ga_error1”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_079252.player.on(“MEDIA_ERROR_1″, function (name) {
// Gọi GA load video
if(v_err_log_1zplayer_079252){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_1’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_2zplayer_079252 = document.getElementById(“zplayer_079252_ga_error2”);
videozplayer_079252.player.on(“MEDIA_ERROR_2″, function (name) {
// Gọi GA load video
if(v_err_log_2zplayer_079252){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_2’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_3zplayer_079252 = document.getElementById(“zplayer_079252_ga_error3”);
videozplayer_079252.player.on(“MEDIA_ERROR_3″, function (name) {
// Gọi GA load video
if(v_err_log_3zplayer_079252){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_3’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_4zplayer_079252 = document.getElementById(“zplayer_079252_ga_error4”);
videozplayer_079252.player.on(“MEDIA_ERROR_4″, function (name) {
// Gọi GA load video
if(v_err_log_4zplayer_079252){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_4’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_5zplayer_079252 = document.getElementById(“zplayer_079252_ga_error5”);
videozplayer_079252.player.on(“MEDIA_ERROR_5″, function (name) {
// Gọi GA load video
if(v_err_log_5zplayer_079252){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_5’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_1”, function(){
console.log(“track_slow_playlist_next_1”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792521 = document.getElementById(“link_slow_playlist_next_zplayer_0792521”);
if(v_track_slow_playlist_zplayer_0792521){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_2”, function(){
console.log(“track_slow_playlist_next_2”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792522 = document.getElementById(“link_slow_playlist_next_zplayer_0792522”);
if(v_track_slow_playlist_zplayer_0792522){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_3”, function(){
console.log(“track_slow_playlist_next_3”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792523 = document.getElementById(“link_slow_playlist_next_zplayer_0792523”);
if(v_track_slow_playlist_zplayer_0792523){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_4”, function(){
console.log(“track_slow_playlist_next_4”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792524 = document.getElementById(“link_slow_playlist_next_zplayer_0792524”);
if(v_track_slow_playlist_zplayer_0792524){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_5”, function(){
console.log(“track_slow_playlist_next_5”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792525 = document.getElementById(“link_slow_playlist_next_zplayer_0792525”);
if(v_track_slow_playlist_zplayer_0792525){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_6”, function(){
console.log(“track_slow_playlist_next_6”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792526 = document.getElementById(“link_slow_playlist_next_zplayer_0792526”);
if(v_track_slow_playlist_zplayer_0792526){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_7”, function(){
console.log(“track_slow_playlist_next_7”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792527 = document.getElementById(“link_slow_playlist_next_zplayer_0792527”);
if(v_track_slow_playlist_zplayer_0792527){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_8”, function(){
console.log(“track_slow_playlist_next_8”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792528 = document.getElementById(“link_slow_playlist_next_zplayer_0792528”);
if(v_track_slow_playlist_zplayer_0792528){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_9”, function(){
console.log(“track_slow_playlist_next_9”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_0792529 = document.getElementById(“link_slow_playlist_next_zplayer_0792529”);
if(v_track_slow_playlist_zplayer_0792529){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“track_slow_playlist_next_10”, function(){
console.log(“track_slow_playlist_next_10”);
$(“
“).insertBefore(“#zplayer_079252_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_07925210 = document.getElementById(“link_slow_playlist_next_zplayer_07925210”);
if(v_track_slow_playlist_zplayer_07925210){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_079252.player.on(“timeupdated”, function () {
if (count_time_update_zplayer_079252 < 50) {
count_time_update_zplayer_079252++;
// console.log(“AE TIME UPDATE: “+count_time_update_zplayer_079252);
}
if(v_load_recommend_boxzplayer_079252 && typeof(v_thoi_luong_hien_thi) != “undefined” && v_thoi_luong_hien_thi != “”){
try{
var v_time_current = videozplayer_079252.player.currentTime();
if(v_time_current > 0){
if(v_time_current >= v_thoi_luong_hien_thi){
function getJsonRecomment(url,callback){
if(url == “”){
return “”;
}
dynamicIdLive = new Date().valueOf();
url = url+dynamicIdLive;
var xhr = new XMLHttpRequest();
// Get url
xhr.open(“GET”, url, true);
// Kiểu phản hồi
xhr.responseType = “json”;
xhr.timeout = 50000; // Set timeout to 2 seconds
xhr.ontimeout = function () {console.log(url+” – timeout”);}
// Load data
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
callback(xhr.response);
}else{
console.log(“B3: status != 200”);
}
};
xhr.send();
}
if(typeof v_url_json_data_recomment != “undefined”){
getJsonRecomment(v_url_json_data_recomment,function(v_object_recomend){
if(typeof v_object_recomend != “undefined” && parseInt(v_object_recomend.length) > 0){
var recomment_arr_video_ngay_hien_tai = _getStorageJson24h(“recomment_video_ngay_hien_tai_data_news_id”);
var recomment_video_ngay_hom_qua_data_news_id = _getStorageJson24h(“recomment_video_ngay_hom_qua_data_news_id”);
// Lặp để loại bỏ những bài đang xem
var arr_recomend_video = new Array();
var k=0;
var v_so_luong_tin_hien_thi = parseInt(v_object_recomend[0][“c_tong_so_luong_tin_hien_thi”]);
for(j=0;j 0){
if(v_recomment_news_id== parseInt(v_object_recomend[j][“c_new_id”])){
continue;
}
if(typeof(recomment_arr_video_ngay_hien_tai) != “undefined” && recomment_arr_video_ngay_hien_tai.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
if(typeof(recomment_video_ngay_hom_qua_data_news_id) != “undefined” && recomment_video_ngay_hom_qua_data_news_id.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
}
arr_recomend_video[k] = v_object_recomend[j];
k++;
if(k >= v_so_luong_tin_hien_thi){
break;
}
}
var v_total_page_recommend =0;
v_total_page_recommend = parseInt(Math.ceil(parseInt(arr_recomend_video.length)/parseInt(v_object_recomend[0][“c_number_items”])));
// Tao HTML video recommend
arr_recomend_video[0][“c_tracking_onclick”] = “”;
arr_recomend_video[0][“c_tracking_onload”] = “”;
arr_recomend_video[0][“c_tracking_onload_gatag”] = “”;
var v_html_recomend = tao_html_recommend_video_tu_object(arr_recomend_video,”zplayer_079252″);
// Gắn HTML vào chuỗi
if(v_html_recomend !=””){
// Nếu tồn tại video highlight
if ($(“#vjs-marker-tableinfo-zplayer_079252”).length) {
$(“#vjs-marker-tableinfo-zplayer_079252”).after(v_html_recomend);
} else {
if ($(“#zplayer_079252_ga_preroll”).length) {
$(“#zplayer_079252_ga_preroll”).before(v_html_recomend);
}
}
// Hiển thị dạng slide
if ($(“#box_recommend_zplayer_079252”).length) {
$(“#box_recommend_zplayer_079252”).show(1000);
setTimeout(function(){
create_slide_page_number_recommend_video_json(“swiper_recommend_v2018zplayer_079252”, “swpier_container_zplayer_079252″,”swiper_active_slide_zplayer_079252”, “pagination-zplayer_079252″,”wrapper_zplayer_079252”,v_total_page_recommend, “swiper-slide slide_zplayer_079252”, “prvVid_recommendzplayer_079252”, “nxtVid_recommendzplayer_079252”);
$(“#box_recommend_zplayer_079252”).css(“height”, “”);
}, 900);
}
}
}
});
}
v_load_recommend_boxzplayer_079252 = false;
}
}
}catch(e){
console.log([“Errors”, e]);
}
}
});
videozplayer_079252.player.on(“MEDIA_SLOW_WAITING”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_waiting_zplayer_079252 = document.getElementById(“zplayer_079252_ga_media_slow_waiting”);
if(v_slow_waiting_zplayer_079252){
//đổi ms về s
v_so_giay_load = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_waiting’, ”, ”, 6, v_so_giay_load);
}
//console.log(“listener MEDIA_SLOW_WAITING: “);
});
videozplayer_079252.player.on(“MEDIA_SLOW_METADATA”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_metadata_zplayer_079252 = document.getElementById(“zplayer_079252_ga_media_slow_metadata”);
if(v_slow_metadata_zplayer_079252){
//đổi ms về s
v_so_giay_load_metadata = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_metadata’, ”, ”, 6, v_so_giay_load_metadata);
}
//console.log(“listener MEDIA_SLOW_METADATA: “);
});
videozplayer_079252.player.on(‘onPrerollStart’, function(name){
//console.log(‘ON PREROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘preroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_079252.player.on(‘onOverlayStart’, function(name){
//console.log(‘ON OVERLAY START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘overlay_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_079252.player.on(‘onPostRollStart’, function(name){
//console.log(‘ON POSTROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘postroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});
videozplayer_079252.player.on([
“play”,
“playing”,
“adstart”,
“adplaying”,
], function (evt, data) {
if (typeof stop_video_news_live == “function”){
stop_video_news_live(“___”);
}
});
videozplayer_079252.player.one([
“play”,
], function (e) {
let vastUri = this.vastUri;
let vastUriPost = this.vastUriPost;
let vastUriMid = this.vastUriMid;
// Neu co cau hinh autoplay nhung trình duyet k cho phep auto play thi gan tham so bang vpmute = 0
if(this.viewportAutoPlay == true && this.willAutoplay === false){
if(vastUri != “”){
this.vastUri = vastUri + “&vpmute=0”;
}
if(vastUriPost != “”){
this.vastUriPost = vastUriPost + “&vpmute=0”;
}
if(vastUriMid != “”){
this.vastUriMid = vastUriMid + “&vpmute=0”;
}
}
}.bind(videozplayer_079252));
videozplayer_079252.player.on([
“contentchanged”,
], function (e) {
this.player.one([
“playing”,
], function (e) {
var currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
// đợi player xử lý 1s mới bắt đầu check xem có chạy được không
setTimeout(function(){
// đã thay đổi item –> bỏ qua
var chk_currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (chk_currentItem != currentItem){
return;
}
var has_timeupdate = false;
this.player.one([
“timeupdate”,
], function (e) {
has_timeupdate = true;
});
setTimeout(function(){
if (has_timeupdate){
return;
}
if (this.player.paused()){
return;
}
this.dbglog(“timeupdate_missing –> try to restart”);
this.player.pause();
setTimeout(function(){
this.player.play();
}.bind(this), 100);
}.bind(this), 300);
}.bind(this), 1000);
}.bind(this));
}.bind(videozplayer_079252));
videozplayer_079252.player.on(“onStop”, function(name) {
//console.log(“listener onStop: “);
});
videozplayer_079252.player.on(“onFullscreen”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý bỏ neo khi mở chế độ fullscreen
// đang ở chế độ neo
if (this.hasClass(“mini-player”)){
this.removeClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerHideCloseBtn();
this.unminimizeOnFullscreen = true;
}
}.bind(videozplayer_079252));
videozplayer_079252.player.on(“onFullscreenOff”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý neo lại khi thoát chế độ fullscreen
// từng bỏ neo khi mở chế độ fullscreen
if (typeof this.unminimizeOnFullscreen != “undefined” && this.unminimizeOnFullscreen){
this.addClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerDisplayCloseBtn();
this.unminimizeOnFullscreen = false;
}
}.bind(videozplayer_079252));
}
videoAdsInitzplayer_079252 = true;
}
// Ga video load luôn được chạy
window.addEventListener(“load”, function(){});window.addEventListener(“load”, function(){});
function inViewport( element ){
// Get the elements position relative to the viewport
var bb = element.getBoundingClientRect();
// Check if the element is outside the viewport
// Then invert the returned value because you want to know the opposite
return !(bb.top > innerHeight || bb.bottom < 0);
}
var zplayer_079252VpElm = document.getElementById( “zplayer_079252” );
var viszplayer_079252 = (function () {
var stateKey, eventKey, keys = {
hidden: “visibilitychange”,
webkitHidden: “webkitvisibilitychange”,
mozHidden: “mozvisibilitychange”,
msHidden: “msvisibilitychange”
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function (c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
var videoAds1Elmzplayer_079252 = document.getElementById(“v-24hContainer_zplayer_079252”);
document.addEventListener(“DOMContentLoaded”, function () {
if(videoAds1Elmzplayer_079252){
var videoAdsInitzplayer_079252 = false;
var checkTabActivezplayer_079252 = setInterval(function () {
if (inViewport(videoAds1Elmzplayer_079252) && viszplayer_079252() && !videoAdsInitzplayer_079252 && typeof(window.videojs) !== “undefined” && (typeof(google) !== “undefined” || adBlockCheckedStatus) && videoObj) {
initvideozplayer_079252();
clearInterval(checkTabActivezplayer_079252);
}
// 20230817 fix lỗi lần đầu vào đợi onload check chặn quảng cáo quá lâu
// XLCYCMHENG-42783 – async lib ima3 -> tăng thời gian chờ load ima3
else if (typeof videoObjRoot != “undefined” && videoObjRoot){
if (typeof videoAdsInitzplayer_079252_fix_AdBlockCheck == “undefined”){
setTimeout(function(){
if (typeof adBlockCheckedStatus != “undefined” && !adBlockCheckedStatus){
adBlockCheckedStatus = true;
adBlockEnabled = false;
}
}, 2000);
videoAdsInitzplayer_079252_fix_AdBlockCheck = true;
}
}
}, 100);
}
}, false);
//]]>
//
Xe cộ chen nhau trên đường Hồ Tùng Mậu. Video: Lộc Chung
9h40
Rời nhà từ sớm, nhiều người vẫn chưa thể tới cơ quan khi ùn tắc khắp mọi ngã ba, ngã tư đường phố. Chị Đỗ Thuỳ Linh rời nhà trên phố Nguyễn Khánh Toàn từ 7h30, đến 8h34 mới tới cơ quan trên phố Khâm Thiên, chậm 4 phút so với giờ chấm công. “Thế là đánh rơi một ngày công trên đường vì mưa với tắc”, chị ngao ngán.
Người dân vượt ách tắc trên đường Lê Văn Lương (Thanh Xuân). Ảnh: Ngọc Thành
9h30
Đường Lê Văn Lương hướng vào nội đô ùn tắc cục bộ từ hầm chui đến các nút giao, ngã tư đèn đỏ. Cảnh sát giao thông túc trực phân làn, hướng dẫn các phương tiện di chuyển trong mưa lớn.
Hầm chui Lê Văn Lương (Thanh Xuân) ùn ứ một chiều hướng về trung tâm thành phố. Ảnh: Ngọc Thành
Xe cộ dừng chờ đoạn lối lên khỏi hầm chui do phía trước ùn tắc. Ảnh: Ngọc Thành
Cảnh sát giao thông phân luồng trong mưa lớn. Ảnh: Ngọc Thành
9h20
Đường Hoàng Quốc Việt lúc 9h. Ảnh: Anh Phú
Người đi xe máy len lỏi qua các đoạn hở giữa ôtô để tìm lối đi. Ảnh: Anh Phú
// 0) {
// console.log(“AE volByCookie VAR : “+volByCookie);
vid_vol_var = volByCookie;
}
}
// console.log(“AE VIDVOL VAR : “+vid_vol_var);
var vidLoaded = false,
dynamicId,
vidId,
parentVid = “v-24hContainer_zplayer_c18183”,
videoElmStr = ‘
‘+
‘To view this video please enable JavaScript, and consider upgrading to a web browser that ‘+
‘supports HTML5 video ‘+
‘ ‘ +
”,
videozplayer_c18183,
videoAds1Conf = {
“poster”: “https://cdn.24h.com.vn/upload/4-2025/images/2025-10-14/1760409051-xe-c—-nh–ch-t—ng-ch–t-tr–n——–ng-ho–ng-qu—c-vi—t.jpg”,
“offsetWatchPercent”: 20,
“stopOtherOnPlay”: true,
“parentVid”: parentVid,
“offHighlightOnBannerBottom”:false,
“vidErrorLog”: 1,
“skipAble”: true,
“skipTime”: 5000,
/*CDN_DOMAIN_HLS*/
“skipAdsBtnContent”: “Skip Ad”,
“showAdVol”: true,
“VIDEOID”: “zplayer_c18183”,
/*MINI_VIDEO*/
“viewportAutoPlay”: true,
“vidVol” : vid_vol_var,
//”adVolIncrease”: 0.25,
//”showVolIncreasement”:1,
//”adVol” : “0.15”,
“trackSlowMedia”:1,
“secondToLoadMedia”:3000,
“secondToLoadMeta”:3000,
“prerollTimeEnd” : 31,
“midrollTimeEnd” : 15,
“postrollTimeEnd” : 30,
“skipAdsBtnPos”: “bottom-left”,
“fastSeek”: {step: 5},
“userAgent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.137 Safari/537.36”,
“adLoadTimeout” : 8000
,”vastUri”: “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D640x360%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpreroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriPost” : “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D528x297%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpostroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriMid” : “https%3A%2F%2Fvideo.24h.com.vn%2Fupload%2Fhtml%2Ftempvast.xml”
,”midTime”: 10
/*FALL_BACK*/
/*PLAYLIST_ITEM*/
/*DRM_VIDEO*/
//{set_highlight_zplayer_html5}
/*ID_BANNER_SPONSOR*/
}
if (volByCookie != null) {
if (volByCookie <= 0) {
// console.log("AE volByCookie VAR set MUTED : "+volByCookie);
videoAds1Conf.muted = 1;
}
}
if(document.getElementById(parentVid).innerHTML.trim() == ""){
loadVidzplayer_c18183();
vidLoaded = true;
}
var count_time_update_zplayer_c18183 = 0;
function loadVidzplayer_c18183(){
dynamicId = new Date().valueOf();
vidId = "my-video-multiple1_"+dynamicId;
videoAds1Conf.VIDEOID = vidId;
if(vidLoaded==true){
videoAds1Conf.viewportAutoPlay = false;
}
var newVideStr = videoElmStr.replace(/__VIDIDzplayer_c18183__/g, vidId);
document.getElementById(parentVid).innerHTML = newVideStr;
if (typeof adBlockEnabled_Unique != "undefined"){
// XLCYCMHENG-42783 – player – async lib ima3 + multi video – fix bug adBlockEnabled không đồng nhất
adBlockEnabled = adBlockEnabled_Unique;
}
videozplayer_c18183 = new videoObj(videoAds1Conf);
// console.log("AE LOAD PLAYER");
// console.log(videoAds1Conf);
// console.log("AE THIS VOLUME LOAD PLAYER muted VAR :"+videoAds1Conf.muteByUser);
//console.log("AE THIS VOLUME LOAD PLAYER is muted :"+videozplayer_c18183.player.muted());
//console.log("AE THIS VOLUME LOAD PLAYER: "+videozplayer_c18183.player.volume());
//console.log("AE THIS VOLUME LOAD PLAYER CURRENT VOLUME : "+current_vol_zplayer_c18183);
if ((typeof(videoAds1Conf.muteByUser) != "undefined" && videoAds1Conf.muteByUser == 1) || (volByCookie != null && volByCookie 0) {
videoAds1Conf.vidVol = current_vol_zplayer_c18183;
videoAds1Conf.muteByUser = 0;
} else {
videoAds1Conf.muteByUser = 1;
videoAds1Conf.vidVol = 0;
}
var videoConf = videoAds1Conf;
videoConf.viewportAutoPlay = false;
// console.log(“AE videoConf: “, videoConf);
var element = document.getElementById(videoConf.VIDEOID);
// element.parentNode.removeChild(element);
// videozplayer_c18183 = undefined;
videozplayer_c18183.player.dispose();
loadVidzplayer_c18183();
});
videozplayer_c18183.player.on(“loadeddata”, function(){
// 20220224 fix lỗi không khởi tạo đc playerInitHeight
if (this.playerInitHeight <= 0){
this.playerInitHeight = Math.round(this.getById(this.VIDEOID).getBoundingClientRect().height)
this.dbglog("this.playerInitHeight: " + this.playerInitHeight)
this.playerHasSponsorInitHeight = Math.floor(this.getById(this.VIDEOID).getBoundingClientRect().height) – 1;// làm tròn xuống & -1
this.dbglog("this.playerHasSponsorInitHeight: " + this.playerHasSponsorInitHeight);
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on("volumechange", function(){
var new_vd_volume = videozplayer_c18183.player.volume();
// console.log("AE volume change");
// console.log("AE THIS VOLUME AFTER CHANGE: "+videozplayer_c18183.player.volume());
// console.log("AE volume change is mute : "+videozplayer_c18183.player.muted());
var is_vd_muted = videozplayer_c18183.player.muted();
var check_set_cookie = false;
if (new_vd_volume 10) {
is_vd_muted = true;
}
if (is_vd_muted == true) {
// console.log(“AE is_vd_muted TRUE”);
if (current_vol_zplayer_c18183 > 0 && count_time_update_zplayer_c18183 > 10) {
check_set_cookie = true;
}
current_vol_zplayer_c18183 = 0;
videozplayer_c18183.player.muted(1);
setTimeout(function(){
videozplayer_c18183.player.muted(1);
},300);
} else {
// console.log(“AE is_vd_muted FALSE”);
if (volByCookie <= 0 && count_time_update_zplayer_c18183 < 5) {
check_set_cookie = false;
} else {
check_set_cookie = true;
}
current_vol_zplayer_c18183 = new_vd_volume;
}
// console.log("AE check_set_cookie: "+check_set_cookie);
if (check_set_cookie == true) {
setCookie("videoVolumeByUser", current_vol_zplayer_c18183, 30*24, "/", "24h.com.vn", "");// lưu cookie 30 ngày
// console.log("AE SET COOKIE");
} else {
// console.log("AE NOTTTT SET COOKIE");
}
// console.log("AE THIS VOLUME AFTER CHANGE LATER: "+current_vol_zplayer_c18183);
}.bind(videozplayer_c18183));
videozplayer_c18183.player.ready(function () {
// XLCYCMHENG-38546 – [24H] Tối ưu khoảng trống trên/dưới banner sponsor_video_top / sponsor_video_botton
if (this.idBannerBottom != ""){
let vidEl = this.getById(this.VIDEOID);
let vidHeight = vidEl.getBoundingClientRect().height;
// làm tròn xuống & -1 height div chứa player
let parentHeight = Math.floor(vidHeight) – 1;
vidEl.parentNode.style.height = parentHeight + "px";
vidEl.parentNode.style.overflowY = "hidden";
// căn player lùi lên 0.7px
vidEl.style.marginTop = "-0.7px";
// 20220110: fix lỗi khi xem chế độ theater
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9{margin-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// XLCYCMHENG-44429 – 24h – Lỗi giao diện khi thu nhỏ màn hình – lỗi chiều cao theaterMod khi zoom
if (this.theaterMod && this.theaterMod.height) {
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9-custom.zoomed:not(.mini-player){padding-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// bổ sung class zoomed-out / zoomed-in theo chế độ zoom thực tế
function updateVideoZoomState() {
let vidEl = this.getById(this.VIDEOID);
const zoom = Math.round(window.devicePixelRatio * 100);
vidEl.classList.remove("zoomed", "zoomed-out", "zoomed-in");
if (zoom != 100) {
vidEl.classList.add("zoomed", zoom chưa xử lý; > 0 -> item cần nhảy tới; đã xử lý xong
let playTimeResuming = 0; // 0 -> chưa xử lý; > 0 -> thời điểm cần nhảy tới; đã xử lý xong
let useStorage = true; // sử dụng Storage để lưu trữ – không bị giới hạn số lượng, dung lượng, thời gian; không bị gửi lên server khi request trang
let minDuration = 10;
let adsTimeResuming = 0;
let adsBefore = true;
// XLCYCMHENG-39918 – player – resume watching – manager keys
// Math.floor(Date.now() / 1000) -> thời gian hiện tại (giây) theo UTC
let timeLiveKey = 720;
let updatetimeKey = “player__resume_watching__updatetime”;
// lấy item + thời gian đã xem từ cookie
let watching = “”;
if (useStorage && typeof Storage !== “undefined”){
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lấy thời điểm cập nhật key
var player__resume_watching__updatetime__get = function (key) {
if (typeof key == “undefined” || !key){return 0;}
let default_time = (new Date(“2022-10-01 00:00:00”)).getTime(); // mặc định nếu không có thời điểm cập nhật cũ
let updatetime = default_time;
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
let updatetime_all_obj = JSON.parse(updatetime_all_text);
if (typeof updatetime_all_obj == “object” && updatetime_all_obj !== null && typeof updatetime_all_obj[key] != “undefined”){
updatetime = parseInt(updatetime_all_obj[key]);
if (isNaN(updatetime)){
updatetime = default_time;
}
}
} catch (err){}
}
return updatetime;
};
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lưu thời điểm cập nhật key
var player__resume_watching__updatetime__set = function (key, remove_key) {
if (typeof key == “undefined” || !key){return false;}
if (typeof remove_key == “undefined”){
remove_key = false;
}
let updatetime_all_obj = {};
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
updatetime_all_obj = JSON.parse(updatetime_all_text);
} catch (err){}
}
if (typeof updatetime_all_obj != “object” || updatetime_all_obj === null){
updatetime_all_obj = {};
// danh sách các key có trong localStorage
let arr_all_key = Object.keys(localStorage);
if (typeof arr_all_key == “object” && arr_all_key !== null){
try {
// các key lưu lịch sử xem tiếp cũ chưa từng được đưa vào danh sách thời điểm cập nhật
let arr_key = arr_all_key.filter(key => key.match(/player__resume_watching_(.*)/));
if (typeof arr_key == “object” && arr_key !== null){
for (let i in arr_key) {
updatetime_all_obj[arr_key[i]] = Math.floor(Date.now() / 1000);
}
}
} catch (err){}
}
}
if (!remove_key){// cập nhật thời điểm cập nhật
updatetime_all_obj[key] = Math.floor(Date.now() / 1000);
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after update – error: ” + err.message);
}
} else if (typeof updatetime_all_obj[key] != “undefined”){// remove nếu có thời điểm cập nhật cũ
delete updatetime_all_obj[key];
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after delete – error: ” + err.message);
}
}
return true;
};
// lấy lịch sử đang xem
watching = localStorage.getItem(cookieKey);
console.log(“player: => get localStorage resume watching: ” + watching);
// có key -> check hết hạn key thì xóa, không dùng
if (timeLiveKey > 0 && watching !== null && watching !== “”){
let updatetime = player__resume_watching__updatetime__get(cookieKey);
if (updatetime + 60 * 60 * timeLiveKey remove expires localStorage resume watching: ” + cookieKey);
} catch (err){
console.log(“player: => remove expires localStorage resume watching: ” + cookieKey + ” – error: ” + err.message);
}
}
}
} else {
watching = getCookie(cookieKey);
console.log(“player: => get cookie resume watching: ” + watching);
}
if (!watching || typeof watching != “string”){
watching = “”;
}
if (watching != “”){
let arr_watching = watching.split(“:”);
if (arr_watching.length >= 2){
let watchingItem = parseInt(arr_watching[0]);
let watchingTime = parseFloat(arr_watching[1]);
if (!isNaN(watchingItem) && watchingItem > 0){
playItemResuming = watchingItem;// lưu item cần nhảy tới khi bắt đầu chạy video
}
if (!isNaN(watchingTime) && watchingTime > 0){
playTimeResuming = watchingTime;// lưu thời gian cần nhảy tới khi bắt đầu chạy video
adsTimeResuming = watchingTime;// lưu thời gian quảng cáo cần xử lý
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (playItemResuming > 0){
adsTimeResuming = 100000;// playlist xem từ item thứ 2 -> chặn luôn preroll và midroll
}
console.log(“player: => need resume watching to item:” + playItemResuming + “; time:” + playTimeResuming);
}
}
}
videozplayer_c18183.player.on([
“resume-watching”,
], function (e) {
if (minDuration > 0 && typeof this.tracking != “undefined” && typeof this.tracking.video != “undefined”){
let duration = 0;
if (typeof this.tracking.video.playlistTotalMins != “undefined”){
duration = this.tracking.video.playlistTotalMins;
}
if (typeof this.tracking.video.vidDuration != “undefined”){
duration = this.tracking.video.vidDuration;
}
if (duration > 0 && duration hủy cố gắng phát tiếp
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (playItemResuming > 0 && this.isPlaylist && this.player.playlist.lastIndex() > 0){
if (playItemResuming > this.player.playlist.lastIndex()){
playItemResuming %= (this.player.playlist.lastIndex() + 1);
}
if (this.player.playlist.currentItem() != playItemResuming){
this.player.playlist.currentItem(playItemResuming);// nhảy tới item
console.log(“player:event:” + e.type + ” => resume watching item:” + this.player.playlist.currentItem());
}
}
if (currentItem != playItemResuming && playTimeResuming > 0){
// hẹn trigger vào sự kiện play/loadeddata tiếp theo (sau khi load được item) -> thay đổi time sau
this.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
return;
}
if (playTimeResuming > 0){
this.player.currentTime(playTimeResuming);
}
playItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
playTime = this.player.currentTime();
console.log(“player:event:” + e.type + ” => resume watching item:” + playItem + “; time:” + playTime);
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
if (adsBefore){
let hasPreroll = false;
if (this.isPlaylist){
let currentItem = this.player.playlist.currentItem();
let currentItemSource = this.playlistConf;
let currentSrc = currentItemSource[currentItem].sources[0];
let adTag = typeof currentSrc != “undefined” && typeof currentSrc.adTagUrl != “undefined” ? currentSrc.adTagUrl : false;
if (!adTag || adTag === “”) {
adTag = this.tempVast;
}
hasPreroll = !adTag ? false : true;
} else {
let vastUri = this.vastUri;
if (!vastUri || vastUri === “”) {
vastUri = this.tempVast;
}
hasPreroll = !vastUri ? false : true;
}
if (hasPreroll){
this.handlePreroll();
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.one([
“adend”,
“adskip”,
“nopreroll”,
“adscanceled”,
“adserror”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
// hẹn trigger vào sự kiện playing tiếp theo
this.player.one([
“playing”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on(“timeupdated”, function (e) {
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
let currentTime = this.player.currentTime();
if (currentItem != playItem || Math.abs(currentTime – playTime) > 0.5){// lưu cookie khi có sai khác trên 0.5s
playItem = currentItem;
playTime = currentTime;
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.setItem(cookieKey, playItem+”:”+playTime);
// console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime);
} catch (err){
console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime + “; err:” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey);
} else {
setCookie(cookieKey, currentItem+”:”+currentTime, (timeLiveKey > 0 ? timeLiveKey : 720), “/”, “24h.com.vn”, “”);
// console.log(“player:event:” + e.type + ” => set cookie resume watching to item:” + currentItem + “; time:” + currentTime);
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (currentItem >= playItemResuming && currentTime >= playTimeResuming + 5){
// hủy cố gắng phát tiếp từ cookie khi đã resume thành công & chạy được 1 khoảng
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on([
“seeking”,
“seeked”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi user tự thay đổi thời gian xem
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
});
videozplayer_c18183.player.on([
“endVid”,
“onPostRollStart”,
“videoended”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi đã kết thúc
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
playItem = 0;
playTime = 0;
// xóa thông tin lịch sử đang xem
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.removeItem(cookieKey);
console.log(“player:event:” + e.type + ” => remove localStorage resume watching”);
} catch (err){
console.log(“player:event:” + e.type + ” => remove localStorage resume watching – error: ” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey, true);
} else {
setCookie(cookieKey, playItem+”:”+playTime, 1, “/”, “24h.com.vn”, “”);
console.log(“player:event:” + e.type + ” => remove cookie resume watching”);
}
});
videozplayer_c18183.player.on([
“readyforpreroll”,
], function (e) {
if (!adsBefore && adsTimeResuming > 0){
let closeAds = “”;
if (this.player.ads.isInAdMode()){// preroll
if (adsTimeResuming > 5){// thời điểm xem tiếp quá 5s
closeAds = “preroll”;
}
} else {// midroll
let duration = this.player.duration();
if (!duration){
duration = 0;
}
if (adsTimeResuming > 0 && duration > 0 && (
(this.midTime && adsTimeResuming > this.midTime)
|| adsTimeResuming > duration / 2
)
){
closeAds = “midroll”;
}
}
if (closeAds != “”){
this.closeAd();
console.log(“player:event:” + e.type + ” => cancel ” + closeAds + ” – closeAd”);
if (this.player.paused()) {// cố khởi chạy tiếp nếu đang bị dừng
if (this.autoplayRequiresMute){// bắt buộc phải mute -> tắt tiếng để play đc luôn
this.player.muted(true);
}
this.player.play();
}
}
}
}.bind(videozplayer_c18183));
/*RESUME_WATCHING_EVENTS-END*/
videozplayer_c18183.player.on(“onPrerollError”, function(name) {
var objVideos = videojs(vidId+”_html5_api”);
});
videozplayer_c18183.player.on(“AE_completed”, function(name) {
// console.log(“AE_completed AE_completed :”+current_vol_zplayer_c18183);
var is_vd_mute = videozplayer_c18183.player.muted();
if (is_vd_mute == true) {
//videozplayer_c18183.player.volume(0);
setTimeout(function(){
videozplayer_c18183.player.muted(1);
// console.log(“AE_completed AE_completed set MUTED”);
},400);
}
});
videozplayer_c18183.player.on(“onPlay”, function(name) {
// console.log(“onPlay AE_started AE_started :”+current_vol_zplayer_c18183);
var is_vd_mute = videozplayer_c18183.player.muted();
if (is_vd_mute == true) {
if (current_vol_zplayer_c18183 > 0) {
// console.log(“AE SET VOLUME 1111111”);
videozplayer_c18183.player.volume(current_vol_zplayer_c18183);
}
videozplayer_c18183.player.muted(1);
// console.log(“AE MUTE LOAD PLAYER ACTION SET MUTE 111111: “);
}
// console.log(“AE THIS VOLUME is muted :”+videozplayer_c18183.player.muted());
// console.log(“AE THIS VOLUME: “+videozplayer_c18183.player.volume());
// begin 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘play’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
// end 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
//Begin 14-07-2017 : Thangnb tracking_google_tag_manager_video
//End 14-07-2017 : Thangnb tracking_google_tag_manager_video
send_tracking_video(”, ‘none’, 0, 0, ”, ‘pc’, ”, ‘no’, ‘no’, 3, ‘video_noi_dung’);
});
// Begin 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
videozplayer_c18183.player.on(“playerMinimized”, function(name) {
// console.log(“Listener playerMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”157px”);
$(“#backpage”).css(“bottom”,”200px”);
}
});
videozplayer_c18183.player.on(“playerUnMinimized”, function(name) {
// console.log(“Listener playerUnMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
videozplayer_c18183.player.on(“miniPlayerClosed”, function(name) {
// console.log(“Listener miniPlayerClosed: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
// End 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
var v_event_tracking_impression_prerollzplayer_c18183 = document.getElementById(“zplayer_c18183_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_c18183.player.on(“AE_impression”, function(name) {
// Gọi GA load video
if(v_event_tracking_impression_prerollzplayer_c18183){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_c18183_ga_preroll”);
if(document.getElementById(“link_ga_tracking_impression_preroll_zplayer_c18183”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘impression’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_event_tracking_click_prerollzplayer_c18183 = document.getElementById(“zplayer_c18183_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_c18183.player.on(“AE_clicked”, function(name) {
// Gọi GA load video
if(v_event_tracking_click_prerollzplayer_c18183){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_c18183_ga_preroll”);
if(document.getElementById(“link_ga_tracking_click_preroll_zplayer_c18183”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘ads_click’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_err_log_1zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_error1”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_c18183.player.on(“MEDIA_ERROR_1″, function (name) {
// Gọi GA load video
if(v_err_log_1zplayer_c18183){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_1’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_2zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_error2”);
videozplayer_c18183.player.on(“MEDIA_ERROR_2″, function (name) {
// Gọi GA load video
if(v_err_log_2zplayer_c18183){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_2’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_3zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_error3”);
videozplayer_c18183.player.on(“MEDIA_ERROR_3″, function (name) {
// Gọi GA load video
if(v_err_log_3zplayer_c18183){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_3’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_4zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_error4”);
videozplayer_c18183.player.on(“MEDIA_ERROR_4″, function (name) {
// Gọi GA load video
if(v_err_log_4zplayer_c18183){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_4’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_5zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_error5”);
videozplayer_c18183.player.on(“MEDIA_ERROR_5″, function (name) {
// Gọi GA load video
if(v_err_log_5zplayer_c18183){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_5’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_1”, function(){
console.log(“track_slow_playlist_next_1”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181831 = document.getElementById(“link_slow_playlist_next_zplayer_c181831”);
if(v_track_slow_playlist_zplayer_c181831){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_2”, function(){
console.log(“track_slow_playlist_next_2”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181832 = document.getElementById(“link_slow_playlist_next_zplayer_c181832”);
if(v_track_slow_playlist_zplayer_c181832){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_3”, function(){
console.log(“track_slow_playlist_next_3”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181833 = document.getElementById(“link_slow_playlist_next_zplayer_c181833”);
if(v_track_slow_playlist_zplayer_c181833){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_4”, function(){
console.log(“track_slow_playlist_next_4”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181834 = document.getElementById(“link_slow_playlist_next_zplayer_c181834”);
if(v_track_slow_playlist_zplayer_c181834){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_5”, function(){
console.log(“track_slow_playlist_next_5”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181835 = document.getElementById(“link_slow_playlist_next_zplayer_c181835”);
if(v_track_slow_playlist_zplayer_c181835){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_6”, function(){
console.log(“track_slow_playlist_next_6”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181836 = document.getElementById(“link_slow_playlist_next_zplayer_c181836”);
if(v_track_slow_playlist_zplayer_c181836){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_7”, function(){
console.log(“track_slow_playlist_next_7”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181837 = document.getElementById(“link_slow_playlist_next_zplayer_c181837”);
if(v_track_slow_playlist_zplayer_c181837){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_8”, function(){
console.log(“track_slow_playlist_next_8”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181838 = document.getElementById(“link_slow_playlist_next_zplayer_c181838”);
if(v_track_slow_playlist_zplayer_c181838){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_9”, function(){
console.log(“track_slow_playlist_next_9”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c181839 = document.getElementById(“link_slow_playlist_next_zplayer_c181839”);
if(v_track_slow_playlist_zplayer_c181839){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“track_slow_playlist_next_10”, function(){
console.log(“track_slow_playlist_next_10”);
$(“
“).insertBefore(“#zplayer_c18183_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_c1818310 = document.getElementById(“link_slow_playlist_next_zplayer_c1818310”);
if(v_track_slow_playlist_zplayer_c1818310){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_c18183.player.on(“timeupdated”, function () {
if (count_time_update_zplayer_c18183 < 50) {
count_time_update_zplayer_c18183++;
// console.log(“AE TIME UPDATE: “+count_time_update_zplayer_c18183);
}
if(v_load_recommend_boxzplayer_c18183 && typeof(v_thoi_luong_hien_thi) != “undefined” && v_thoi_luong_hien_thi != “”){
try{
var v_time_current = videozplayer_c18183.player.currentTime();
if(v_time_current > 0){
if(v_time_current >= v_thoi_luong_hien_thi){
function getJsonRecomment(url,callback){
if(url == “”){
return “”;
}
dynamicIdLive = new Date().valueOf();
url = url+dynamicIdLive;
var xhr = new XMLHttpRequest();
// Get url
xhr.open(“GET”, url, true);
// Kiểu phản hồi
xhr.responseType = “json”;
xhr.timeout = 50000; // Set timeout to 2 seconds
xhr.ontimeout = function () {console.log(url+” – timeout”);}
// Load data
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
callback(xhr.response);
}else{
console.log(“B3: status != 200”);
}
};
xhr.send();
}
if(typeof v_url_json_data_recomment != “undefined”){
getJsonRecomment(v_url_json_data_recomment,function(v_object_recomend){
if(typeof v_object_recomend != “undefined” && parseInt(v_object_recomend.length) > 0){
var recomment_arr_video_ngay_hien_tai = _getStorageJson24h(“recomment_video_ngay_hien_tai_data_news_id”);
var recomment_video_ngay_hom_qua_data_news_id = _getStorageJson24h(“recomment_video_ngay_hom_qua_data_news_id”);
// Lặp để loại bỏ những bài đang xem
var arr_recomend_video = new Array();
var k=0;
var v_so_luong_tin_hien_thi = parseInt(v_object_recomend[0][“c_tong_so_luong_tin_hien_thi”]);
for(j=0;j 0){
if(v_recomment_news_id== parseInt(v_object_recomend[j][“c_new_id”])){
continue;
}
if(typeof(recomment_arr_video_ngay_hien_tai) != “undefined” && recomment_arr_video_ngay_hien_tai.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
if(typeof(recomment_video_ngay_hom_qua_data_news_id) != “undefined” && recomment_video_ngay_hom_qua_data_news_id.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
}
arr_recomend_video[k] = v_object_recomend[j];
k++;
if(k >= v_so_luong_tin_hien_thi){
break;
}
}
var v_total_page_recommend =0;
v_total_page_recommend = parseInt(Math.ceil(parseInt(arr_recomend_video.length)/parseInt(v_object_recomend[0][“c_number_items”])));
// Tao HTML video recommend
arr_recomend_video[0][“c_tracking_onclick”] = “”;
arr_recomend_video[0][“c_tracking_onload”] = “”;
arr_recomend_video[0][“c_tracking_onload_gatag”] = “”;
var v_html_recomend = tao_html_recommend_video_tu_object(arr_recomend_video,”zplayer_c18183″);
// Gắn HTML vào chuỗi
if(v_html_recomend !=””){
// Nếu tồn tại video highlight
if ($(“#vjs-marker-tableinfo-zplayer_c18183”).length) {
$(“#vjs-marker-tableinfo-zplayer_c18183”).after(v_html_recomend);
} else {
if ($(“#zplayer_c18183_ga_preroll”).length) {
$(“#zplayer_c18183_ga_preroll”).before(v_html_recomend);
}
}
// Hiển thị dạng slide
if ($(“#box_recommend_zplayer_c18183”).length) {
$(“#box_recommend_zplayer_c18183”).show(1000);
setTimeout(function(){
create_slide_page_number_recommend_video_json(“swiper_recommend_v2018zplayer_c18183”, “swpier_container_zplayer_c18183″,”swiper_active_slide_zplayer_c18183”, “pagination-zplayer_c18183″,”wrapper_zplayer_c18183”,v_total_page_recommend, “swiper-slide slide_zplayer_c18183”, “prvVid_recommendzplayer_c18183”, “nxtVid_recommendzplayer_c18183”);
$(“#box_recommend_zplayer_c18183”).css(“height”, “”);
}, 900);
}
}
}
});
}
v_load_recommend_boxzplayer_c18183 = false;
}
}
}catch(e){
console.log([“Errors”, e]);
}
}
});
videozplayer_c18183.player.on(“MEDIA_SLOW_WAITING”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_waiting_zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_media_slow_waiting”);
if(v_slow_waiting_zplayer_c18183){
//đổi ms về s
v_so_giay_load = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_waiting’, ”, ”, 6, v_so_giay_load);
}
//console.log(“listener MEDIA_SLOW_WAITING: “);
});
videozplayer_c18183.player.on(“MEDIA_SLOW_METADATA”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_metadata_zplayer_c18183 = document.getElementById(“zplayer_c18183_ga_media_slow_metadata”);
if(v_slow_metadata_zplayer_c18183){
//đổi ms về s
v_so_giay_load_metadata = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_metadata’, ”, ”, 6, v_so_giay_load_metadata);
}
//console.log(“listener MEDIA_SLOW_METADATA: “);
});
videozplayer_c18183.player.on(‘onPrerollStart’, function(name){
//console.log(‘ON PREROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘preroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_c18183.player.on(‘onOverlayStart’, function(name){
//console.log(‘ON OVERLAY START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘overlay_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_c18183.player.on(‘onPostRollStart’, function(name){
//console.log(‘ON POSTROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘postroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});
videozplayer_c18183.player.on([
“play”,
“playing”,
“adstart”,
“adplaying”,
], function (evt, data) {
if (typeof stop_video_news_live == “function”){
stop_video_news_live(“___”);
}
});
videozplayer_c18183.player.one([
“play”,
], function (e) {
let vastUri = this.vastUri;
let vastUriPost = this.vastUriPost;
let vastUriMid = this.vastUriMid;
// Neu co cau hinh autoplay nhung trình duyet k cho phep auto play thi gan tham so bang vpmute = 0
if(this.viewportAutoPlay == true && this.willAutoplay === false){
if(vastUri != “”){
this.vastUri = vastUri + “&vpmute=0”;
}
if(vastUriPost != “”){
this.vastUriPost = vastUriPost + “&vpmute=0”;
}
if(vastUriMid != “”){
this.vastUriMid = vastUriMid + “&vpmute=0”;
}
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on([
“contentchanged”,
], function (e) {
this.player.one([
“playing”,
], function (e) {
var currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
// đợi player xử lý 1s mới bắt đầu check xem có chạy được không
setTimeout(function(){
// đã thay đổi item –> bỏ qua
var chk_currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (chk_currentItem != currentItem){
return;
}
var has_timeupdate = false;
this.player.one([
“timeupdate”,
], function (e) {
has_timeupdate = true;
});
setTimeout(function(){
if (has_timeupdate){
return;
}
if (this.player.paused()){
return;
}
this.dbglog(“timeupdate_missing –> try to restart”);
this.player.pause();
setTimeout(function(){
this.player.play();
}.bind(this), 100);
}.bind(this), 300);
}.bind(this), 1000);
}.bind(this));
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on(“onStop”, function(name) {
//console.log(“listener onStop: “);
});
videozplayer_c18183.player.on(“onFullscreen”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý bỏ neo khi mở chế độ fullscreen
// đang ở chế độ neo
if (this.hasClass(“mini-player”)){
this.removeClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerHideCloseBtn();
this.unminimizeOnFullscreen = true;
}
}.bind(videozplayer_c18183));
videozplayer_c18183.player.on(“onFullscreenOff”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý neo lại khi thoát chế độ fullscreen
// từng bỏ neo khi mở chế độ fullscreen
if (typeof this.unminimizeOnFullscreen != “undefined” && this.unminimizeOnFullscreen){
this.addClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerDisplayCloseBtn();
this.unminimizeOnFullscreen = false;
}
}.bind(videozplayer_c18183));
}
videoAdsInitzplayer_c18183 = true;
}
// Ga video load luôn được chạy
window.addEventListener(“load”, function(){});window.addEventListener(“load”, function(){});
function inViewport( element ){
// Get the elements position relative to the viewport
var bb = element.getBoundingClientRect();
// Check if the element is outside the viewport
// Then invert the returned value because you want to know the opposite
return !(bb.top > innerHeight || bb.bottom < 0);
}
var zplayer_c18183VpElm = document.getElementById( “zplayer_c18183” );
var viszplayer_c18183 = (function () {
var stateKey, eventKey, keys = {
hidden: “visibilitychange”,
webkitHidden: “webkitvisibilitychange”,
mozHidden: “mozvisibilitychange”,
msHidden: “msvisibilitychange”
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function (c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
var videoAds1Elmzplayer_c18183 = document.getElementById(“v-24hContainer_zplayer_c18183”);
document.addEventListener(“DOMContentLoaded”, function () {
if(videoAds1Elmzplayer_c18183){
var videoAdsInitzplayer_c18183 = false;
var checkTabActivezplayer_c18183 = setInterval(function () {
if (inViewport(videoAds1Elmzplayer_c18183) && viszplayer_c18183() && !videoAdsInitzplayer_c18183 && typeof(window.videojs) !== “undefined” && (typeof(google) !== “undefined” || adBlockCheckedStatus) && videoObj) {
initvideozplayer_c18183();
clearInterval(checkTabActivezplayer_c18183);
}
// 20230817 fix lỗi lần đầu vào đợi onload check chặn quảng cáo quá lâu
// XLCYCMHENG-42783 – async lib ima3 -> tăng thời gian chờ load ima3
else if (typeof videoObjRoot != “undefined” && videoObjRoot){
if (typeof videoAdsInitzplayer_c18183_fix_AdBlockCheck == “undefined”){
setTimeout(function(){
if (typeof adBlockCheckedStatus != “undefined” && !adBlockCheckedStatus){
adBlockCheckedStatus = true;
adBlockEnabled = false;
}
}, 2000);
videoAdsInitzplayer_c18183_fix_AdBlockCheck = true;
}
}
}, 100);
}
}, false);
//]]>
//
Xe cộ nhích từng chút trên đường Hoàng Quốc Việt trong cơn mưa rào. Video: Anh Phú
9h10
Di chuyển từ Vĩnh Tuy sang Cầu Giấy, chị Thu Hằng cho biết hiện tại “đứng im” trên phố Nguyễn Ngọc Vũ, không thể quay xe hướng khác vì khắp nơi đều tắc. “Giao thông rất hỗn loạn”, chị cho hay.
Tương tự trên phố Kim Mã, dòng người nhích từng chút một, “40 phút đi được một km” do đường hẹp lại qua đoạn rào chắn xây dựng ga metro.
Trên đường 70 qua Bệnh viện K Tân Triều, các phương tiện ùn ứ từ 7h.
// 0) {
// console.log(“AE volByCookie VAR : “+volByCookie);
vid_vol_var = volByCookie;
}
}
// console.log(“AE VIDVOL VAR : “+vid_vol_var);
var vidLoaded = false,
dynamicId,
vidId,
parentVid = “v-24hContainer_zplayer_e987c4”,
videoElmStr = ‘
‘+
‘To view this video please enable JavaScript, and consider upgrading to a web browser that ‘+
‘supports HTML5 video ‘+
‘ ‘ +
”,
videozplayer_e987c4,
videoAds1Conf = {
“poster”: “https://cdn.24h.com.vn/upload/4-2025/images/2025-10-14/1760408961-ph—-nguy—n-ng—c-v–.jpg”,
“offsetWatchPercent”: 20,
“stopOtherOnPlay”: true,
“parentVid”: parentVid,
“offHighlightOnBannerBottom”:false,
“vidErrorLog”: 1,
“skipAble”: true,
“skipTime”: 5000,
/*CDN_DOMAIN_HLS*/
“skipAdsBtnContent”: “Skip Ad”,
“showAdVol”: true,
“VIDEOID”: “zplayer_e987c4”,
/*MINI_VIDEO*/
“viewportAutoPlay”: true,
“vidVol” : vid_vol_var,
//”adVolIncrease”: 0.25,
//”showVolIncreasement”:1,
//”adVol” : “0.15”,
“trackSlowMedia”:1,
“secondToLoadMedia”:3000,
“secondToLoadMeta”:3000,
“prerollTimeEnd” : 31,
“midrollTimeEnd” : 15,
“postrollTimeEnd” : 30,
“skipAdsBtnPos”: “bottom-left”,
“fastSeek”: {step: 5},
“userAgent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.137 Safari/537.36”,
“adLoadTimeout” : 8000
,”vastUri”: “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D640x360%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpreroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriPost” : “https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads%3Fsz%3D528x297%26iu%3D%2F124557882%2F24h%2Fus%2Fdesktop%2Fdaily_news%2Fpostroll%26impl%3Ds%26gdfp_req%3D1%26env%3Dvp%26output%3Dvast%26unviewed_position_start%3D1%26url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26description_url%3Dhttps%253A%252F%252Fwww.24h.com.vn%252Ftin-tuc-trong-ngay%252Fduong-pho-ha-noi-tac-cung-trong-mua-c46a1705754.html%26correlator%3D1760417846%26ambient%3D1%26plcmt%3D2″
,”vastUriMid” : “https%3A%2F%2Fvideo.24h.com.vn%2Fupload%2Fhtml%2Ftempvast.xml”
,”midTime”: 10
/*FALL_BACK*/
/*PLAYLIST_ITEM*/
/*DRM_VIDEO*/
//{set_highlight_zplayer_html5}
/*ID_BANNER_SPONSOR*/
}
if (volByCookie != null) {
if (volByCookie <= 0) {
// console.log("AE volByCookie VAR set MUTED : "+volByCookie);
videoAds1Conf.muted = 1;
}
}
if(document.getElementById(parentVid).innerHTML.trim() == ""){
loadVidzplayer_e987c4();
vidLoaded = true;
}
var count_time_update_zplayer_e987c4 = 0;
function loadVidzplayer_e987c4(){
dynamicId = new Date().valueOf();
vidId = "my-video-multiple1_"+dynamicId;
videoAds1Conf.VIDEOID = vidId;
if(vidLoaded==true){
videoAds1Conf.viewportAutoPlay = false;
}
var newVideStr = videoElmStr.replace(/__VIDIDzplayer_e987c4__/g, vidId);
document.getElementById(parentVid).innerHTML = newVideStr;
if (typeof adBlockEnabled_Unique != "undefined"){
// XLCYCMHENG-42783 – player – async lib ima3 + multi video – fix bug adBlockEnabled không đồng nhất
adBlockEnabled = adBlockEnabled_Unique;
}
videozplayer_e987c4 = new videoObj(videoAds1Conf);
// console.log("AE LOAD PLAYER");
// console.log(videoAds1Conf);
// console.log("AE THIS VOLUME LOAD PLAYER muted VAR :"+videoAds1Conf.muteByUser);
//console.log("AE THIS VOLUME LOAD PLAYER is muted :"+videozplayer_e987c4.player.muted());
//console.log("AE THIS VOLUME LOAD PLAYER: "+videozplayer_e987c4.player.volume());
//console.log("AE THIS VOLUME LOAD PLAYER CURRENT VOLUME : "+current_vol_zplayer_e987c4);
if ((typeof(videoAds1Conf.muteByUser) != "undefined" && videoAds1Conf.muteByUser == 1) || (volByCookie != null && volByCookie 0) {
videoAds1Conf.vidVol = current_vol_zplayer_e987c4;
videoAds1Conf.muteByUser = 0;
} else {
videoAds1Conf.muteByUser = 1;
videoAds1Conf.vidVol = 0;
}
var videoConf = videoAds1Conf;
videoConf.viewportAutoPlay = false;
// console.log(“AE videoConf: “, videoConf);
var element = document.getElementById(videoConf.VIDEOID);
// element.parentNode.removeChild(element);
// videozplayer_e987c4 = undefined;
videozplayer_e987c4.player.dispose();
loadVidzplayer_e987c4();
});
videozplayer_e987c4.player.on(“loadeddata”, function(){
// 20220224 fix lỗi không khởi tạo đc playerInitHeight
if (this.playerInitHeight <= 0){
this.playerInitHeight = Math.round(this.getById(this.VIDEOID).getBoundingClientRect().height)
this.dbglog("this.playerInitHeight: " + this.playerInitHeight)
this.playerHasSponsorInitHeight = Math.floor(this.getById(this.VIDEOID).getBoundingClientRect().height) – 1;// làm tròn xuống & -1
this.dbglog("this.playerHasSponsorInitHeight: " + this.playerHasSponsorInitHeight);
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on("volumechange", function(){
var new_vd_volume = videozplayer_e987c4.player.volume();
// console.log("AE volume change");
// console.log("AE THIS VOLUME AFTER CHANGE: "+videozplayer_e987c4.player.volume());
// console.log("AE volume change is mute : "+videozplayer_e987c4.player.muted());
var is_vd_muted = videozplayer_e987c4.player.muted();
var check_set_cookie = false;
if (new_vd_volume 10) {
is_vd_muted = true;
}
if (is_vd_muted == true) {
// console.log(“AE is_vd_muted TRUE”);
if (current_vol_zplayer_e987c4 > 0 && count_time_update_zplayer_e987c4 > 10) {
check_set_cookie = true;
}
current_vol_zplayer_e987c4 = 0;
videozplayer_e987c4.player.muted(1);
setTimeout(function(){
videozplayer_e987c4.player.muted(1);
},300);
} else {
// console.log(“AE is_vd_muted FALSE”);
if (volByCookie <= 0 && count_time_update_zplayer_e987c4 < 5) {
check_set_cookie = false;
} else {
check_set_cookie = true;
}
current_vol_zplayer_e987c4 = new_vd_volume;
}
// console.log("AE check_set_cookie: "+check_set_cookie);
if (check_set_cookie == true) {
setCookie("videoVolumeByUser", current_vol_zplayer_e987c4, 30*24, "/", "24h.com.vn", "");// lưu cookie 30 ngày
// console.log("AE SET COOKIE");
} else {
// console.log("AE NOTTTT SET COOKIE");
}
// console.log("AE THIS VOLUME AFTER CHANGE LATER: "+current_vol_zplayer_e987c4);
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.ready(function () {
// XLCYCMHENG-38546 – [24H] Tối ưu khoảng trống trên/dưới banner sponsor_video_top / sponsor_video_botton
if (this.idBannerBottom != ""){
let vidEl = this.getById(this.VIDEOID);
let vidHeight = vidEl.getBoundingClientRect().height;
// làm tròn xuống & -1 height div chứa player
let parentHeight = Math.floor(vidHeight) – 1;
vidEl.parentNode.style.height = parentHeight + "px";
vidEl.parentNode.style.overflowY = "hidden";
// căn player lùi lên 0.7px
vidEl.style.marginTop = "-0.7px";
// 20220110: fix lỗi khi xem chế độ theater
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9{margin-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// XLCYCMHENG-44429 – 24h – Lỗi giao diện khi thu nhỏ màn hình – lỗi chiều cao theaterMod khi zoom
if (this.theaterMod && this.theaterMod.height) {
let style = document.createElement("style");
style.type = "text/css";
style.innerHTML = ".theaterDisplay .video-js.vjs-16-9-custom.zoomed:not(.mini-player){padding-top: 0px !important}";
document.getElementsByTagName("head")[0].appendChild(style);
}
// bổ sung class zoomed-out / zoomed-in theo chế độ zoom thực tế
function updateVideoZoomState() {
let vidEl = this.getById(this.VIDEOID);
const zoom = Math.round(window.devicePixelRatio * 100);
vidEl.classList.remove("zoomed", "zoomed-out", "zoomed-in");
if (zoom != 100) {
vidEl.classList.add("zoomed", zoom chưa xử lý; > 0 -> item cần nhảy tới; đã xử lý xong
let playTimeResuming = 0; // 0 -> chưa xử lý; > 0 -> thời điểm cần nhảy tới; đã xử lý xong
let useStorage = true; // sử dụng Storage để lưu trữ – không bị giới hạn số lượng, dung lượng, thời gian; không bị gửi lên server khi request trang
let minDuration = 10;
let adsTimeResuming = 0;
let adsBefore = true;
// XLCYCMHENG-39918 – player – resume watching – manager keys
// Math.floor(Date.now() / 1000) -> thời gian hiện tại (giây) theo UTC
let timeLiveKey = 720;
let updatetimeKey = “player__resume_watching__updatetime”;
// lấy item + thời gian đã xem từ cookie
let watching = “”;
if (useStorage && typeof Storage !== “undefined”){
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lấy thời điểm cập nhật key
var player__resume_watching__updatetime__get = function (key) {
if (typeof key == “undefined” || !key){return 0;}
let default_time = (new Date(“2022-10-01 00:00:00”)).getTime(); // mặc định nếu không có thời điểm cập nhật cũ
let updatetime = default_time;
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
let updatetime_all_obj = JSON.parse(updatetime_all_text);
if (typeof updatetime_all_obj == “object” && updatetime_all_obj !== null && typeof updatetime_all_obj[key] != “undefined”){
updatetime = parseInt(updatetime_all_obj[key]);
if (isNaN(updatetime)){
updatetime = default_time;
}
}
} catch (err){}
}
return updatetime;
};
// XLCYCMHENG-39918 – player – resume watching – manager keys
// khai báo hàm lưu thời điểm cập nhật key
var player__resume_watching__updatetime__set = function (key, remove_key) {
if (typeof key == “undefined” || !key){return false;}
if (typeof remove_key == “undefined”){
remove_key = false;
}
let updatetime_all_obj = {};
let updatetime_all_text = localStorage.getItem(updatetimeKey);
if (updatetime_all_text != “”){
try {
updatetime_all_obj = JSON.parse(updatetime_all_text);
} catch (err){}
}
if (typeof updatetime_all_obj != “object” || updatetime_all_obj === null){
updatetime_all_obj = {};
// danh sách các key có trong localStorage
let arr_all_key = Object.keys(localStorage);
if (typeof arr_all_key == “object” && arr_all_key !== null){
try {
// các key lưu lịch sử xem tiếp cũ chưa từng được đưa vào danh sách thời điểm cập nhật
let arr_key = arr_all_key.filter(key => key.match(/player__resume_watching_(.*)/));
if (typeof arr_key == “object” && arr_key !== null){
for (let i in arr_key) {
updatetime_all_obj[arr_key[i]] = Math.floor(Date.now() / 1000);
}
}
} catch (err){}
}
}
if (!remove_key){// cập nhật thời điểm cập nhật
updatetime_all_obj[key] = Math.floor(Date.now() / 1000);
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after update – error: ” + err.message);
}
} else if (typeof updatetime_all_obj[key] != “undefined”){// remove nếu có thời điểm cập nhật cũ
delete updatetime_all_obj[key];
try {
localStorage.setItem(updatetimeKey, JSON.stringify(updatetime_all_obj));
} catch (err){
console.log(“player: => set localStorage updatetimeKey after delete – error: ” + err.message);
}
}
return true;
};
// lấy lịch sử đang xem
watching = localStorage.getItem(cookieKey);
console.log(“player: => get localStorage resume watching: ” + watching);
// có key -> check hết hạn key thì xóa, không dùng
if (timeLiveKey > 0 && watching !== null && watching !== “”){
let updatetime = player__resume_watching__updatetime__get(cookieKey);
if (updatetime + 60 * 60 * timeLiveKey remove expires localStorage resume watching: ” + cookieKey);
} catch (err){
console.log(“player: => remove expires localStorage resume watching: ” + cookieKey + ” – error: ” + err.message);
}
}
}
} else {
watching = getCookie(cookieKey);
console.log(“player: => get cookie resume watching: ” + watching);
}
if (!watching || typeof watching != “string”){
watching = “”;
}
if (watching != “”){
let arr_watching = watching.split(“:”);
if (arr_watching.length >= 2){
let watchingItem = parseInt(arr_watching[0]);
let watchingTime = parseFloat(arr_watching[1]);
if (!isNaN(watchingItem) && watchingItem > 0){
playItemResuming = watchingItem;// lưu item cần nhảy tới khi bắt đầu chạy video
}
if (!isNaN(watchingTime) && watchingTime > 0){
playTimeResuming = watchingTime;// lưu thời gian cần nhảy tới khi bắt đầu chạy video
adsTimeResuming = watchingTime;// lưu thời gian quảng cáo cần xử lý
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (playItemResuming > 0){
adsTimeResuming = 100000;// playlist xem từ item thứ 2 -> chặn luôn preroll và midroll
}
console.log(“player: => need resume watching to item:” + playItemResuming + “; time:” + playTimeResuming);
}
}
}
videozplayer_e987c4.player.on([
“resume-watching”,
], function (e) {
if (minDuration > 0 && typeof this.tracking != “undefined” && typeof this.tracking.video != “undefined”){
let duration = 0;
if (typeof this.tracking.video.playlistTotalMins != “undefined”){
duration = this.tracking.video.playlistTotalMins;
}
if (typeof this.tracking.video.vidDuration != “undefined”){
duration = this.tracking.video.vidDuration;
}
if (duration > 0 && duration hủy cố gắng phát tiếp
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (playItemResuming > 0 && this.isPlaylist && this.player.playlist.lastIndex() > 0){
if (playItemResuming > this.player.playlist.lastIndex()){
playItemResuming %= (this.player.playlist.lastIndex() + 1);
}
if (this.player.playlist.currentItem() != playItemResuming){
this.player.playlist.currentItem(playItemResuming);// nhảy tới item
console.log(“player:event:” + e.type + ” => resume watching item:” + this.player.playlist.currentItem());
}
}
if (currentItem != playItemResuming && playTimeResuming > 0){
// hẹn trigger vào sự kiện play/loadeddata tiếp theo (sau khi load được item) -> thay đổi time sau
this.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
return;
}
if (playTimeResuming > 0){
this.player.currentTime(playTimeResuming);
}
playItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
playTime = this.player.currentTime();
console.log(“player:event:” + e.type + ” => resume watching item:” + playItem + “; time:” + playTime);
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.one([
“play”,
“loadeddata”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
if (adsBefore){
let hasPreroll = false;
if (this.isPlaylist){
let currentItem = this.player.playlist.currentItem();
let currentItemSource = this.playlistConf;
let currentSrc = currentItemSource[currentItem].sources[0];
let adTag = typeof currentSrc != “undefined” && typeof currentSrc.adTagUrl != “undefined” ? currentSrc.adTagUrl : false;
if (!adTag || adTag === “”) {
adTag = this.tempVast;
}
hasPreroll = !adTag ? false : true;
} else {
let vastUri = this.vastUri;
if (!vastUri || vastUri === “”) {
vastUri = this.tempVast;
}
hasPreroll = !vastUri ? false : true;
}
if (hasPreroll){
this.handlePreroll();
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
} else {
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.one([
“adend”,
“adskip”,
“nopreroll”,
“adscanceled”,
“adserror”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
// hẹn trigger vào sự kiện playing tiếp theo
this.player.one([
“playing”,
], function (e) {
if (playItemResuming > 0 || playTimeResuming > 0){
console.log(“player:event:” + e.type + ” => triggerEvt:resume-watching”);
this.triggerEvt(“resume-watching”);
}
}.bind(this));
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on(“timeupdated”, function (e) {
let currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
let currentTime = this.player.currentTime();
if (currentItem != playItem || Math.abs(currentTime – playTime) > 0.5){// lưu cookie khi có sai khác trên 0.5s
playItem = currentItem;
playTime = currentTime;
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.setItem(cookieKey, playItem+”:”+playTime);
// console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime);
} catch (err){
console.log(“player:event:” + e.type + ” => set localStorage resume watching to item:” + currentItem + “; time:” + currentTime + “; err:” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey);
} else {
setCookie(cookieKey, currentItem+”:”+currentTime, (timeLiveKey > 0 ? timeLiveKey : 720), “/”, “24h.com.vn”, “”);
// console.log(“player:event:” + e.type + ” => set cookie resume watching to item:” + currentItem + “; time:” + currentTime);
}
}
if (playItemResuming > 0 || playTimeResuming > 0){
if (currentItem >= playItemResuming && currentTime >= playTimeResuming + 5){
// hủy cố gắng phát tiếp từ cookie khi đã resume thành công & chạy được 1 khoảng
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
}
}
// kích hoạt sự kiện onPlay nếu chưa chạy để đảm bảo tracking
if (!this.getState(“sentPlay”) && !this.player.paused()) {
this.triggerEvt(“onPlay”);
console.log(“player:event:” + e.type + ” => triggerEvt:onPlay”);
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on([
“seeking”,
“seeked”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi user tự thay đổi thời gian xem
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
});
videozplayer_e987c4.player.on([
“endVid”,
“onPostRollStart”,
“videoended”,
], function (e) {
// hủy cố gắng phát tiếp từ cookie khi đã kết thúc
playItemResuming = -1;
playTimeResuming = -1;
// hủy cố gắng chặn quảng cáo
adsTimeResuming = -1;
playItem = 0;
playTime = 0;
// xóa thông tin lịch sử đang xem
if (useStorage && typeof Storage !== “undefined”){
try {
localStorage.removeItem(cookieKey);
console.log(“player:event:” + e.type + ” => remove localStorage resume watching”);
} catch (err){
console.log(“player:event:” + e.type + ” => remove localStorage resume watching – error: ” + err.message);
}
// XLCYCMHENG-39918 – player – resume watching – manager keys
player__resume_watching__updatetime__set(cookieKey, true);
} else {
setCookie(cookieKey, playItem+”:”+playTime, 1, “/”, “24h.com.vn”, “”);
console.log(“player:event:” + e.type + ” => remove cookie resume watching”);
}
});
videozplayer_e987c4.player.on([
“readyforpreroll”,
], function (e) {
if (!adsBefore && adsTimeResuming > 0){
let closeAds = “”;
if (this.player.ads.isInAdMode()){// preroll
if (adsTimeResuming > 5){// thời điểm xem tiếp quá 5s
closeAds = “preroll”;
}
} else {// midroll
let duration = this.player.duration();
if (!duration){
duration = 0;
}
if (adsTimeResuming > 0 && duration > 0 && (
(this.midTime && adsTimeResuming > this.midTime)
|| adsTimeResuming > duration / 2
)
){
closeAds = “midroll”;
}
}
if (closeAds != “”){
this.closeAd();
console.log(“player:event:” + e.type + ” => cancel ” + closeAds + ” – closeAd”);
if (this.player.paused()) {// cố khởi chạy tiếp nếu đang bị dừng
if (this.autoplayRequiresMute){// bắt buộc phải mute -> tắt tiếng để play đc luôn
this.player.muted(true);
}
this.player.play();
}
}
}
}.bind(videozplayer_e987c4));
/*RESUME_WATCHING_EVENTS-END*/
videozplayer_e987c4.player.on(“onPrerollError”, function(name) {
var objVideos = videojs(vidId+”_html5_api”);
});
videozplayer_e987c4.player.on(“AE_completed”, function(name) {
// console.log(“AE_completed AE_completed :”+current_vol_zplayer_e987c4);
var is_vd_mute = videozplayer_e987c4.player.muted();
if (is_vd_mute == true) {
//videozplayer_e987c4.player.volume(0);
setTimeout(function(){
videozplayer_e987c4.player.muted(1);
// console.log(“AE_completed AE_completed set MUTED”);
},400);
}
});
videozplayer_e987c4.player.on(“onPlay”, function(name) {
// console.log(“onPlay AE_started AE_started :”+current_vol_zplayer_e987c4);
var is_vd_mute = videozplayer_e987c4.player.muted();
if (is_vd_mute == true) {
if (current_vol_zplayer_e987c4 > 0) {
// console.log(“AE SET VOLUME 1111111”);
videozplayer_e987c4.player.volume(current_vol_zplayer_e987c4);
}
videozplayer_e987c4.player.muted(1);
// console.log(“AE MUTE LOAD PLAYER ACTION SET MUTE 111111: “);
}
// console.log(“AE THIS VOLUME is muted :”+videozplayer_e987c4.player.muted());
// console.log(“AE THIS VOLUME: “+videozplayer_e987c4.player.volume());
// begin 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘play’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
// end 5/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc
//Begin 14-07-2017 : Thangnb tracking_google_tag_manager_video
//End 14-07-2017 : Thangnb tracking_google_tag_manager_video
send_tracking_video(”, ‘none’, 0, 0, ”, ‘pc’, ”, ‘no’, ‘no’, 3, ‘video_noi_dung’);
});
// Begin 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
videozplayer_e987c4.player.on(“playerMinimized”, function(name) {
// console.log(“Listener playerMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”157px”);
$(“#backpage”).css(“bottom”,”200px”);
}
});
videozplayer_e987c4.player.on(“playerUnMinimized”, function(name) {
// console.log(“Listener playerUnMinimized: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
videozplayer_e987c4.player.on(“miniPlayerClosed”, function(name) {
// console.log(“Listener miniPlayerClosed: “);
if ($(“#arrowPageUp”).length) {
$(“#arrowPageUp”).css(“bottom”,”20px”);
}
});
// End 12-12-2018 trungcq XLCYCMHENG_33549_xu_ly_scroll_to_top
var v_event_tracking_impression_prerollzplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_e987c4.player.on(“AE_impression”, function(name) {
// Gọi GA load video
if(v_event_tracking_impression_prerollzplayer_e987c4){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_e987c4_ga_preroll”);
if(document.getElementById(“link_ga_tracking_impression_preroll_zplayer_e987c4”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘impression’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_event_tracking_click_prerollzplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_preroll”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_e987c4.player.on(“AE_clicked”, function(name) {
// Gọi GA load video
if(v_event_tracking_click_prerollzplayer_e987c4){
// Tao thẻ div để chưa link GA
$(“
“).insertBefore(“#zplayer_e987c4_ga_preroll”);
if(document.getElementById(“link_ga_tracking_click_preroll_zplayer_e987c4”)){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 46, ‘daily_news’, ‘pc’, ‘ads_click’, ‘no’, ‘no’, 2, ‘video_noi_dung’);});
}
}
});
var v_err_log_1zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_error1”);
// các trường hợp mã lỗi của trình duyệt trả về
videozplayer_e987c4.player.on(“MEDIA_ERROR_1″, function (name) {
// Gọi GA load video
if(v_err_log_1zplayer_e987c4){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_1’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_2zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_error2”);
videozplayer_e987c4.player.on(“MEDIA_ERROR_2″, function (name) {
// Gọi GA load video
if(v_err_log_2zplayer_e987c4){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_2’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_3zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_error3”);
videozplayer_e987c4.player.on(“MEDIA_ERROR_3″, function (name) {
// Gọi GA load video
if(v_err_log_3zplayer_e987c4){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_3’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_4zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_error4”);
videozplayer_e987c4.player.on(“MEDIA_ERROR_4″, function (name) {
// Gọi GA load video
if(v_err_log_4zplayer_e987c4){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_4’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
var v_err_log_5zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_error5”);
videozplayer_e987c4.player.on(“MEDIA_ERROR_5″, function (name) {
// Gọi GA load video
if(v_err_log_5zplayer_e987c4){
send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘error_ERROR_5’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_1”, function(){
console.log(“track_slow_playlist_next_1”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c41 = document.getElementById(“link_slow_playlist_next_zplayer_e987c41”);
if(v_track_slow_playlist_zplayer_e987c41){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_2”, function(){
console.log(“track_slow_playlist_next_2”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c42 = document.getElementById(“link_slow_playlist_next_zplayer_e987c42”);
if(v_track_slow_playlist_zplayer_e987c42){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_3”, function(){
console.log(“track_slow_playlist_next_3”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c43 = document.getElementById(“link_slow_playlist_next_zplayer_e987c43”);
if(v_track_slow_playlist_zplayer_e987c43){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_4”, function(){
console.log(“track_slow_playlist_next_4”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c44 = document.getElementById(“link_slow_playlist_next_zplayer_e987c44”);
if(v_track_slow_playlist_zplayer_e987c44){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_5”, function(){
console.log(“track_slow_playlist_next_5”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c45 = document.getElementById(“link_slow_playlist_next_zplayer_e987c45”);
if(v_track_slow_playlist_zplayer_e987c45){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_6”, function(){
console.log(“track_slow_playlist_next_6”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c46 = document.getElementById(“link_slow_playlist_next_zplayer_e987c46”);
if(v_track_slow_playlist_zplayer_e987c46){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_7”, function(){
console.log(“track_slow_playlist_next_7”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c47 = document.getElementById(“link_slow_playlist_next_zplayer_e987c47”);
if(v_track_slow_playlist_zplayer_e987c47){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_8”, function(){
console.log(“track_slow_playlist_next_8”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c48 = document.getElementById(“link_slow_playlist_next_zplayer_e987c48”);
if(v_track_slow_playlist_zplayer_e987c48){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_9”, function(){
console.log(“track_slow_playlist_next_9”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c49 = document.getElementById(“link_slow_playlist_next_zplayer_e987c49”);
if(v_track_slow_playlist_zplayer_e987c49){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“track_slow_playlist_next_10”, function(){
console.log(“track_slow_playlist_next_10”);
$(“
“).insertBefore(“#zplayer_e987c4_ga_media_slow_waiting”);
var v_track_slow_playlist_zplayer_e987c410 = document.getElementById(“link_slow_playlist_next_zplayer_e987c410”);
if(v_track_slow_playlist_zplayer_e987c410){
window.addEventListener(“load”, function(){send_tracking_video(”, ‘none’, 1705754, 0, ”, ‘pc’, ‘slow_playlist_next’, ‘no’, ‘no’, 1, ‘video_noi_dung’);});
}
});
videozplayer_e987c4.player.on(“timeupdated”, function () {
if (count_time_update_zplayer_e987c4 < 50) {
count_time_update_zplayer_e987c4++;
// console.log(“AE TIME UPDATE: “+count_time_update_zplayer_e987c4);
}
if(v_load_recommend_boxzplayer_e987c4 && typeof(v_thoi_luong_hien_thi) != “undefined” && v_thoi_luong_hien_thi != “”){
try{
var v_time_current = videozplayer_e987c4.player.currentTime();
if(v_time_current > 0){
if(v_time_current >= v_thoi_luong_hien_thi){
function getJsonRecomment(url,callback){
if(url == “”){
return “”;
}
dynamicIdLive = new Date().valueOf();
url = url+dynamicIdLive;
var xhr = new XMLHttpRequest();
// Get url
xhr.open(“GET”, url, true);
// Kiểu phản hồi
xhr.responseType = “json”;
xhr.timeout = 50000; // Set timeout to 2 seconds
xhr.ontimeout = function () {console.log(url+” – timeout”);}
// Load data
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
callback(xhr.response);
}else{
console.log(“B3: status != 200”);
}
};
xhr.send();
}
if(typeof v_url_json_data_recomment != “undefined”){
getJsonRecomment(v_url_json_data_recomment,function(v_object_recomend){
if(typeof v_object_recomend != “undefined” && parseInt(v_object_recomend.length) > 0){
var recomment_arr_video_ngay_hien_tai = _getStorageJson24h(“recomment_video_ngay_hien_tai_data_news_id”);
var recomment_video_ngay_hom_qua_data_news_id = _getStorageJson24h(“recomment_video_ngay_hom_qua_data_news_id”);
// Lặp để loại bỏ những bài đang xem
var arr_recomend_video = new Array();
var k=0;
var v_so_luong_tin_hien_thi = parseInt(v_object_recomend[0][“c_tong_so_luong_tin_hien_thi”]);
for(j=0;j 0){
if(v_recomment_news_id== parseInt(v_object_recomend[j][“c_new_id”])){
continue;
}
if(typeof(recomment_arr_video_ngay_hien_tai) != “undefined” && recomment_arr_video_ngay_hien_tai.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
if(typeof(recomment_video_ngay_hom_qua_data_news_id) != “undefined” && recomment_video_ngay_hom_qua_data_news_id.indexOf(parseInt(v_object_recomend[j][“c_new_id”])) >= 0){
continue;
}
}
arr_recomend_video[k] = v_object_recomend[j];
k++;
if(k >= v_so_luong_tin_hien_thi){
break;
}
}
var v_total_page_recommend =0;
v_total_page_recommend = parseInt(Math.ceil(parseInt(arr_recomend_video.length)/parseInt(v_object_recomend[0][“c_number_items”])));
// Tao HTML video recommend
arr_recomend_video[0][“c_tracking_onclick”] = “”;
arr_recomend_video[0][“c_tracking_onload”] = “”;
arr_recomend_video[0][“c_tracking_onload_gatag”] = “”;
var v_html_recomend = tao_html_recommend_video_tu_object(arr_recomend_video,”zplayer_e987c4″);
// Gắn HTML vào chuỗi
if(v_html_recomend !=””){
// Nếu tồn tại video highlight
if ($(“#vjs-marker-tableinfo-zplayer_e987c4”).length) {
$(“#vjs-marker-tableinfo-zplayer_e987c4”).after(v_html_recomend);
} else {
if ($(“#zplayer_e987c4_ga_preroll”).length) {
$(“#zplayer_e987c4_ga_preroll”).before(v_html_recomend);
}
}
// Hiển thị dạng slide
if ($(“#box_recommend_zplayer_e987c4”).length) {
$(“#box_recommend_zplayer_e987c4”).show(1000);
setTimeout(function(){
create_slide_page_number_recommend_video_json(“swiper_recommend_v2018zplayer_e987c4”, “swpier_container_zplayer_e987c4″,”swiper_active_slide_zplayer_e987c4”, “pagination-zplayer_e987c4″,”wrapper_zplayer_e987c4”,v_total_page_recommend, “swiper-slide slide_zplayer_e987c4”, “prvVid_recommendzplayer_e987c4”, “nxtVid_recommendzplayer_e987c4”);
$(“#box_recommend_zplayer_e987c4”).css(“height”, “”);
}, 900);
}
}
}
});
}
v_load_recommend_boxzplayer_e987c4 = false;
}
}
}catch(e){
console.log([“Errors”, e]);
}
}
});
videozplayer_e987c4.player.on(“MEDIA_SLOW_WAITING”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_waiting_zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_media_slow_waiting”);
if(v_slow_waiting_zplayer_e987c4){
//đổi ms về s
v_so_giay_load = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_waiting’, ”, ”, 6, v_so_giay_load);
}
//console.log(“listener MEDIA_SLOW_WAITING: “);
});
videozplayer_e987c4.player.on(“MEDIA_SLOW_METADATA”, function (evt, data) {
//console.log(data.waitTime);
var v_slow_metadata_zplayer_e987c4 = document.getElementById(“zplayer_e987c4_ga_media_slow_metadata”);
if(v_slow_metadata_zplayer_e987c4){
//đổi ms về s
v_so_giay_load_metadata = parseInt(data.waitTime/1000);
send_tracking_video(”, ”, 1705754, ”, ”, ”, ‘media_slow_metadata’, ”, ”, 6, v_so_giay_load_metadata);
}
//console.log(“listener MEDIA_SLOW_METADATA: “);
});
videozplayer_e987c4.player.on(‘onPrerollStart’, function(name){
//console.log(‘ON PREROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘preroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_e987c4.player.on(‘onOverlayStart’, function(name){
//console.log(‘ON OVERLAY START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘overlay_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});videozplayer_e987c4.player.on(‘onPostRollStart’, function(name){
//console.log(‘ON POSTROLL START’);
/* begin 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
send_tracking_video(‘none’, ‘Null’, 1705754, 46, ‘daily_news’, ‘pc’, ‘postroll_impression’, ‘no’, ‘no’, 1, ‘video_noi_dung’);
/* end 4/10/2017 TuyenNT xu_ly_gan_ga_video_theo_loai_giai_dau_frontend_pc */
});
videozplayer_e987c4.player.on([
“play”,
“playing”,
“adstart”,
“adplaying”,
], function (evt, data) {
if (typeof stop_video_news_live == “function”){
stop_video_news_live(“___”);
}
});
videozplayer_e987c4.player.one([
“play”,
], function (e) {
let vastUri = this.vastUri;
let vastUriPost = this.vastUriPost;
let vastUriMid = this.vastUriMid;
// Neu co cau hinh autoplay nhung trình duyet k cho phep auto play thi gan tham so bang vpmute = 0
if(this.viewportAutoPlay == true && this.willAutoplay === false){
if(vastUri != “”){
this.vastUri = vastUri + “&vpmute=0”;
}
if(vastUriPost != “”){
this.vastUriPost = vastUriPost + “&vpmute=0”;
}
if(vastUriMid != “”){
this.vastUriMid = vastUriMid + “&vpmute=0”;
}
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on([
“contentchanged”,
], function (e) {
this.player.one([
“playing”,
], function (e) {
var currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
// đợi player xử lý 1s mới bắt đầu check xem có chạy được không
setTimeout(function(){
// đã thay đổi item –> bỏ qua
var chk_currentItem = this.isPlaylist ? this.player.playlist.currentItem() : 0;
if (chk_currentItem != currentItem){
return;
}
var has_timeupdate = false;
this.player.one([
“timeupdate”,
], function (e) {
has_timeupdate = true;
});
setTimeout(function(){
if (has_timeupdate){
return;
}
if (this.player.paused()){
return;
}
this.dbglog(“timeupdate_missing –> try to restart”);
this.player.pause();
setTimeout(function(){
this.player.play();
}.bind(this), 100);
}.bind(this), 300);
}.bind(this), 1000);
}.bind(this));
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on(“onStop”, function(name) {
//console.log(“listener onStop: “);
});
videozplayer_e987c4.player.on(“onFullscreen”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý bỏ neo khi mở chế độ fullscreen
// đang ở chế độ neo
if (this.hasClass(“mini-player”)){
this.removeClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerHideCloseBtn();
this.unminimizeOnFullscreen = true;
}
}.bind(videozplayer_e987c4));
videozplayer_e987c4.player.on(“onFullscreenOff”, function(name) {
// 20250808 – XLCYCMHENG-44473 – xử lý neo lại khi thoát chế độ fullscreen
// từng bỏ neo khi mở chế độ fullscreen
if (typeof this.unminimizeOnFullscreen != “undefined” && this.unminimizeOnFullscreen){
this.addClasses([“mini-player”, “pc-mini-player”]);
this.minPlayerDisplayCloseBtn();
this.unminimizeOnFullscreen = false;
}
}.bind(videozplayer_e987c4));
}
videoAdsInitzplayer_e987c4 = true;
}
// Ga video load luôn được chạy
window.addEventListener(“load”, function(){});window.addEventListener(“load”, function(){});
function inViewport( element ){
// Get the elements position relative to the viewport
var bb = element.getBoundingClientRect();
// Check if the element is outside the viewport
// Then invert the returned value because you want to know the opposite
return !(bb.top > innerHeight || bb.bottom < 0);
}
var zplayer_e987c4VpElm = document.getElementById( “zplayer_e987c4” );
var viszplayer_e987c4 = (function () {
var stateKey, eventKey, keys = {
hidden: “visibilitychange”,
webkitHidden: “webkitvisibilitychange”,
mozHidden: “mozvisibilitychange”,
msHidden: “msvisibilitychange”
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function (c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
var videoAds1Elmzplayer_e987c4 = document.getElementById(“v-24hContainer_zplayer_e987c4”);
document.addEventListener(“DOMContentLoaded”, function () {
if(videoAds1Elmzplayer_e987c4){
var videoAdsInitzplayer_e987c4 = false;
var checkTabActivezplayer_e987c4 = setInterval(function () {
if (inViewport(videoAds1Elmzplayer_e987c4) && viszplayer_e987c4() && !videoAdsInitzplayer_e987c4 && typeof(window.videojs) !== “undefined” && (typeof(google) !== “undefined” || adBlockCheckedStatus) && videoObj) {
initvideozplayer_e987c4();
clearInterval(checkTabActivezplayer_e987c4);
}
// 20230817 fix lỗi lần đầu vào đợi onload check chặn quảng cáo quá lâu
// XLCYCMHENG-42783 – async lib ima3 -> tăng thời gian chờ load ima3
else if (typeof videoObjRoot != “undefined” && videoObjRoot){
if (typeof videoAdsInitzplayer_e987c4_fix_AdBlockCheck == “undefined”){
setTimeout(function(){
if (typeof adBlockCheckedStatus != “undefined” && !adBlockCheckedStatus){
adBlockCheckedStatus = true;
adBlockEnabled = false;
}
}, 2000);
videoAdsInitzplayer_e987c4_fix_AdBlockCheck = true;
}
}
}, 100);
}
}, false);
//]]>
//
Người dân đội mưa “đứng im” trên phố Nguyễn Ngọc Vũ. Video: Thu Hằng
Giao thông hỗn loạn trên Đường 70. Ảnh: Thanh Hải















