Photos show massive fire at apartment building in Pittsburgh's Squirrel Hill neighborhood
By
Madeline Bartos
/ CBS Pittsburgh
A massive fire broke out at an apartment building in Pittsburgh's Squirrel Hill neighborhood on Tuesday.
The building on Forward Avenue, near the Squirrel Hill Tunnel, went up in flames around 8:20 a.m. Photos show bright orange flames shooting from the building while thick smoke billows into the sky. It took firefighters more than four and a half hours to get the blaze under control.
No one was injured or killed, but Pittsburgh Public Safety said as many as 30 residents have been displaced.
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
(Photo Credit: Pittsburgh Public Safety
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Pittsburgh Public Safety
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Melissa Rozier
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
KDKA-TV
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025. The fire happened right near the Squirrel Hill Tunnel.
KDKA-TV
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
KDKA Drone Team
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
Crews battled a massive four-alarm fire at an apartment building on Forward Avenue in Pittsburgh's Squirrel Hill neighborhood on Sept. 9, 2025.
Tory Wegerski
const link = doc.createElement('link');
link.rel = 'stylesheet';
link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2';
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();
}
});
});
});
});