91³Ô¹ÏÍø

Watch CBS News

Murphy, Buttigieg on hand for groundbreaking of new Portal Bridge in New Jersey

KEARNY, N.J. -- A groundbreaking was held for the new Portal Bridge on Monday in Kearny, New Jersey.

Officials said the project will provide a much more reliable commute for NJ Transit and Amtrak riders, CBS2's Natalie Duddridge reported. 

Gov. Phil Murphy was among many elected officials who shoveled dirt at the ceremony marking the start of construction on the long-delayed $1.5 billion bridge. 

"One of the most critical connection points along the entire Northeast Corridor begins in earnest," Murphy said. 

Two tracks on the 2.5-mile span will run 50 feet above the Hackensack River, allowing boats to pass underneath. 

"This project turns the Portal North Bridge from a choke point to an access point. It modernizes the way that people and goods get to and from this region," said U.S. Transportation Secretary Pete Buttigieg

The outdated swing bridge was infamous for getting stuck when it would lift for boats to pass, he said. 

"Workers have to get out their sledgehammers and pound the rails back into alignment," said Buttigieg. "It would be frustrating anywhere, but it's not acceptable at the busiest rail bridge in the country." 

The bridge used by Amtrak and NJ Transit trains often caused major delays for the average 200,000 daily commuters between New Jersey and New York City

"It is frustrating when things are not smooth riding," commuter Alexa Pastuszek said.

"I have used it in the past and I have been delayed a couple of times on the train," another commuter said. 

The new construction is a major part of the Gateway Project - the expansion and renovation of the Northeast Corridor rail line in order to double capacity. 

The project is expected to create more than 8,000 construction jobs. 

Construction is estimated to take 4 years. The first tracks are set to open in 2026. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });