91³Ô¹ÏÍø

Watch CBS News

Frisco ISD lifts secure status after police deem emailed threats non-credible

The Frisco Police Department said just after noon on Monday that all Frisco ISD campuses within city limits are secure following threatening emails sent to campuses earlier in the day. The threat was "determined to be non-credible," Frisco PD said in a statement. 

The department said it is still investigating the source of the threatening messages.

Frisco ISD said, "The secure status has been lifted districtwide. All students and staff are safe." 

CBS News Texas Chopper saw long lines of parents at multiple Frisco ISD buildings waiting to take their children home.

toc-011226-chopper-frisco-isd-threat-12-35-2001.jpg
Parents line up at Nelson Middle School in Frisco to take their children home following threats against district campuses. Police said the threats were not credible. CBS News Texas

Frisco ISD campuses threatened Monday morning

Multiple campuses across Frisco ISD received threatening emails on Monday, according to a letter sent to parents and staff just after 9 a.m.

In the letter, Frisco ISD said administrators immediately notified the Frisco Police Department and began safety protocols, placing all campuses in "secure status" as the investigation continues.

What is secure status? 

The district said under secure status, all school instruction continues in the building as exterior doors remain locked. If any student needed to be released from the classroom, it would be in a controlled and orderly manner. Later in the morning, the district allowed parents to pick up their children.

School officials said they believed Monday's threat was "non-credible at this time." However, as a result of the investigation by the police, the district asked parents not to send students to campus, and any students who had not arrived were asked to stay home.

Students who were already on campus were asked to remain there until law enforcement advised that the district could resume normal operations. School officials said precautionary checks were made at campuses identified in the emails. 

"We understand that any report of a threat can be unsettling. Please know that the safety and well-being of our students and staff is our highest priority. Our established safety protocols were immediately implemented and are functioning as designed. Frisco ISD and the Frisco Police Department take all threats seriously and respond promptly," the district said in a statement. 

The district also reminded students and parents that making a threat to schools is a "serious offense under Texas law and can result in severe legal consequences." 

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=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(); } }); }); }); });