Что вызывает ошибку "Невозможно выполнить код из освобожденного скрипта"

Я думал, что нашел решение некоторое время назад (см. Мой блог):

Если вы когда-нибудь получили ошибку JavaScript (или это должно быть JScript) "Не удается выполнить код из освобожденного скрипта" - попробуйте переместить любые метатеги в голове так, чтобы они были перед вашими тегами скрипта.

... но, основываясь на одном из последних комментариев в блоге, предложенное мной исправление может работать не для всех. Я думал, что это было бы хорошо, чтобы открыть для сообщества Stackru....

Что вызывает ошибку "Не удается выполнить код из освобожденного сценария" и каковы решения / обходные пути?

14 ответов

Решение

Похоже, вы столкнулись с ошибкой / проблемой в том, как обрабатываются некоторые теги, или что у вас есть ссылки на освобожденные объекты, для которых вы пытаетесь выполнить методы.

Сначала я бы переместил любой <meta> теги перед любым <script> теги, как предлагается здесь и многие другие места.

Затем проверьте, есть ли у вас проблемы с безопасностью страниц / страниц, обсуждаемые здесь.

Вы получаете эту ошибку, когда вызываете функцию, которая была создана в окне или кадре, который больше не существует.

Если вы заранее не знаете, существует ли это окно, вы можете сделать попытку / поймать его, чтобы обнаружить:

try
{
  f();
}
catch(e)
{
  if (e.number == -2146823277)
    // f is no longer available
    ...
}

Ошибка возникает, когда "родительское" окно скрипта располагается (т.е. закрыто), но вызывается ссылка на скрипт, который все еще удерживается (например, в другом окне). Даже если "объект" все еще жив, контекст, в котором он хочет выполнить, - нет.

Это немного грязно, но работает для моего гаджета Windows Sidebar:

Вот основная идея: "главное" окно настраивает функцию, которая будет оценивать некоторый код, да, это так ужасно. Затем "ребенок" может вызвать эту "функцию строителя" (которая / связана с областью главного окна /) и вернуть функцию, которая также связана с "главным" окном. Очевидным недостатком является, конечно, то, что функция "отскока" не может быть закрыта по объему, в котором она, казалось бы, определена... во всяком случае, достаточно гибкости:

Это частично псевдокод, но я использую его вариант в гаджете боковой панели Windows (я продолжаю говорить об этом, потому что гаджеты боковой панели работают в "неограниченной зоне 0", что может - или не может - существенно изменить сценарий.)


// This has to be setup from the main window, not a child/etc!
mainWindow.functionBuilder = function (func, args) {
  // trim the name, if any
  var funcStr = ("" + func).replace(/^function\s+[^\s(]+\s*\(/, "function (")
  try {
    var rebuilt
    eval("rebuilt = (" + funcStr + ")")
    return rebuilt(args)
  } catch (e) {
    alert("oops! " + e.message)
  }
}

// then in the child, as an example
// as stated above, even though function (args) looks like it's 
// a closure in the child scope, IT IS NOT. There you go :)
var x = {blerg: 2}
functionInMainWindowContenxt = mainWindow.functionBuilder(function (args) {
  // in here args is in the bound scope -- have at the child objects! :-/
  function fn (blah) {
    return blah * args.blerg
  }
  return fn
}, x)

x.blerg = 7
functionInMainWindowContext(6) // -> 42 if I did my math right

Как вариант, главное окно должно иметь возможность передавать функцию functionBuilder в дочернее окно - до тех пор, пока функция functionBuilder определена в контексте основного окна!

Я чувствую, что использовал слишком много слов. YMMV.

Вот очень специфический случай, в котором я видел такое поведение. Это воспроизводимо для меня в IE6 и IE7.

Изнутри фрейма:

window.parent.mySpecialHandler = function() { ...work... }

Затем, после перезагрузки iframe с новым содержимым, в окне, содержащем iframe:

window.mySpecialHandler();

Этот вызов завершается с ошибкой "Не удается выполнить код из освобожденного сценария", поскольку mySpecialHandler был определен в контексте (исходном DOM iframe), который больше не завершается. (Перезагрузка iframe уничтожила этот контекст.)

Однако вы можете безопасно установить "сериализуемые" значения (примитивы, графы объектов, которые не ссылаются на функции напрямую) в родительском окне. Если вам действительно нужно отдельное окно (в моем случае, iframe), чтобы указать какую-то работу для удаленного окна, вы можете передать эту работу как String и "оценить" ее в получателе. Будьте осторожны с этим, как правило, это не делает для чистой или безопасной реализации.

Если вы пытаетесь получить доступ к объекту JS, самый простой способ - создать копию:

var objectCopy = JSON.parse(JSON.stringify(object));

Надеюсь, это поможет.

Эта ошибка может возникать в MSIE, когда дочернее окно пытается связаться с родительским окном, которое больше не открыто.

(Не самый полезный текст сообщения об ошибке в мире.)

Начиная с IE9 мы начали получать эту ошибку при вызове.getTime() для объекта Date, хранящегося в массиве в другом объекте. Решением было убедиться, что это Date, прежде чем вызывать методы Date:

Потерпеть поражение: rowTime = wl.rowData[a][12].getTime()

Проходить: rowTime = new Date(wl.rowData[a][12]).getTime()

Я столкнулся с этой проблемой, когда внутри дочернего фрейма я добавил ссылочный тип в окно верхнего уровня и попытался получить к нему доступ после перезагрузки дочернего окна.

т.е.

// set the value on first load
window.top.timestamp = new Date();

// after frame reloads, try to access the value
if(window.top.timestamp) // <--- Raises exception
...

Я смог решить проблему, используя только примитивные типы

// set the value on first load
window.top.timestamp = Number(new Date());

Это на самом деле не ответ, а скорее пример того, где именно это и происходит.

У нас есть кадр A и кадр B (это была не моя идея, но я должен с этим жить). Кадр А никогда не меняется, Кадр Б постоянно меняется. Мы не можем применить изменения кода непосредственно к кадру A, поэтому (согласно инструкциям поставщика) мы можем запустить только JavaScript в кадре B - точный кадр, который постоянно меняется.

У нас есть фрагмент JavaScript, который должен запускаться каждые 5 секунд, поэтому JavaScript в кадре B создает новый тег сценария и вставляет его в заголовочный раздел кадра B. В этих новых сценариях существует setInterval (введенный), так как а также функцию для вызова. Даже если внедренный JavaScript-код технически загружен фреймом A (поскольку теперь он содержит тег script), после изменения фрейма B функция setInterval больше не доступна.

У меня была именно эта проблема с iFrames, она как-то связана с настройками/конфигурациями Интернета внутри:

Компьютер\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Настройки Интернета

Я не смог определить точный параметр, который повлиял на это, но я экспортировал конфигурации из базовой установки Windows 10 Enterprise и импортировал их в свой центр обработки данных Windows Server 2022 с помощью редактора реестра, что решило проблему. (Возможно, не рекомендуется)

Я не могу предоставить резервную копию реестра из настроек Интернета сервера, список огромен, но я предоставил импортированные ключи из сборки Enterprise.

Корпоративные настройки Интернета по умолчанию:

      Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "CertificateRevocation"=dword:00000001 "DisableCachingOfSSLPages"=dword:00000000 "IE5_UA_Backup_Flag"="5.0" "PrivacyAdvanced"=dword:00000001 "SecureProtocols"=dword:00000800 "User Agent"="Mozilla/4.0 (compatible; MSIE 8.0; Win32)" "ZonesSecurityUpgrade"=hex:07,df,be,b0,74,4f,d9,01 "WarnonZoneCrossing"=dword:00000000 "EnableNegotiate"=dword:00000001 "ProxyEnable"=dword:00000000 "MigrateProxy"=dword:00000001 "LockDatabase"=hex(b):7a,6d,be,16,78,4f,d9,01 "SecureProtocolsUpdated"=dword:00000001 "EnableHttp1_1"=dword:00000001 "ProxyHttp1.1"=dword:00000001 "EnableHTTP2"=dword:00000001 "ShowPunycode"=dword:00000000 "EnablePunycode"=dword:00000001 "UrlEncoding"=dword:00000000 "DisableIDNPrompt"=dword:00000000 "WarnonBadCertRecving"=dword:00000001 "WarnOnPostRedirect"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache] "ContentLimit"=dword:0000014a "TotalContentLimit"=dword:000001ef "AppContainerTotalContentLimit"=dword:000003e8 "AppContainerContentLimit"=dword:00000032 "Version"=dword:00000004 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content] "CachePrefix"="" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00052800 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Cookies] "CachePrefix"="Cookie:" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\DNTException] "CachePrefix"="DNTException:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\INetCookies\\DNTException" "CacheRelativePath"="Microsoft\\Windows\\INetCookies\\DNTException" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\EmieSiteList] "CachePrefix"="EmieSiteList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Internet Explorer\\EmieSiteList" "CacheRelativePath"="Microsoft\\Internet Explorer\\EmieSiteList" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\EmieUserList] "CachePrefix"="EmieUserList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Internet Explorer\\EmieUserList" "CacheRelativePath"="Microsoft\\Internet Explorer\\EmieUserList" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\feedplat] "CachePrefix"="feedplat:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Feeds Cache" "CacheRelativePath"="Microsoft\\Feeds Cache" "CacheOptions"=dword:00000000 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\iecompat] "CachePrefix"="iecompat:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\IECompatCache" "CacheRelativePath"="Microsoft\\Windows\\IECompatCache" "CacheOptions"=dword:00000309 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\iecompatua] "CachePrefix"="iecompatua:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\IECompatUaCache" "CacheRelativePath"="Microsoft\\Windows\\IECompatUaCache" "CacheOptions"=dword:00000309 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\iedownload] "CachePrefix"="iedownload:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\IEDownloadHistory" "CacheRelativePath"="Microsoft\\Windows\\IEDownloadHistory" "CacheOptions"=dword:00000009 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\IEToEdgeList] "CachePrefix"="IEToEdgeList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\EdgeBho\\IEToEdge" "CacheRelativePath"="Microsoft\\EdgeBho\\IEToEdge" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012023031620230317] "CachePrefix"=":2023031620230317: " "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\History\\History.IE5\\MSHist012023031620230317" "CacheRelativePath"="Microsoft\\Windows\\History\\History.IE5\\MSHist012023031620230317" "CacheOptions"=dword:0000000b "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\History] "CachePrefix"="Visited:" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Content] "CachePrefix"="" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00052800 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Cookies] "CachePrefix"="Cookie:" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\DOMStore] "CachePrefix"="DOMStore" "CachePath"="C:\\Users\\DefaultUser\\AppData\\LocalLow\\Microsoft\\Internet Explorer\\DOMStore" "CacheOptions"=dword:00000008 "CacheRepair"=dword:00000000 "CacheLimit"=dword:000003e8 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\EmieSiteList] "CachePrefix"="EmieSiteList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\LocalLow\\Microsoft\\Internet Explorer\\EmieSiteList" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\EmieUserList] "CachePrefix"="EmieUserList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\LocalLow\\Microsoft\\Internet Explorer\\EmieUserList" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\iecompat] "CachePrefix"="iecompat:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\IECompatCache\\Low" "CacheRelativePath"="Microsoft\\Windows\\IECompatCache\\Low" "CacheOptions"=dword:00000309 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\iecompatua] "CachePrefix"="iecompatua:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\Local\\Microsoft\\Windows\\IECompatUaCache\\Low" "CacheRelativePath"="Microsoft\\Windows\\IECompatUaCache\\Low" "CacheOptions"=dword:00000309 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\IEToEdgeList] "CachePrefix"="IEToEdgeList:" "CachePath"="C:\\Users\\DefaultUser\\AppData\\LocalLow\\Microsoft\\EdgeBho\\IEToEdge" "CacheOptions"=dword:00000300 "CacheRepair"=dword:00000000 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\History] "CachePrefix"="Visited:" "CacheVersion"=dword:00000001 "CacheLimit"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache] "Persistent"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] "SavedLegacySettings"=hex:46,00,00,00,02,00,00,00,09,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00 "DefaultConnectionSettings"=hex:46,00,00,00,02,00,00,00,09,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Http Filters] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Http Filters\RPA] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\0] @="" "DisplayName"="Computer" "PMDisplayName"="Computer [Protected Mode]" "Description"="Your computer" "Icon"="shell32.dll#0016" "LowIcon"="inetcpl.cpl#005422" "CurrentLevel"=dword:00000000 "Flags"=dword:00000021 "1200"=dword:00000003 "1400"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\1] @="" "DisplayName"="Local intranet" "PMDisplayName"="Local intranet [Protected Mode]" "Description"="This zone contains all Web sites that are on your organization's intranet." "Icon"="shell32.dll#0018" "LowIcon"="inetcpl.cpl#005423" "CurrentLevel"=dword:00000000 "Flags"=dword:000000db "1200"=dword:00000003 "1400"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\2] @="" "DisplayName"="Trusted sites" "PMDisplayName"="Trusted sites [Protected Mode]" "Description"="This zone contains Web sites that you trust not to damage your computer or data." "Icon"="inetcpl.cpl#00004480" "LowIcon"="inetcpl.cpl#005424" "CurrentLevel"=dword:00000000 "Flags"=dword:00000021 "1200"=dword:00000003 "1400"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\3] @="" "DisplayName"="Internet" "PMDisplayName"="Internet [Protected Mode]" "Description"="This zone contains all Web sites you haven't placed in other zones" "Icon"="inetcpl.cpl#001313" "LowIcon"="inetcpl.cpl#005425" "CurrentLevel"=dword:00000000 "Flags"=dword:00000021 "1200"=dword:00000003 "1400"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\4] @="" "DisplayName"="Restricted sites" "PMDisplayName"="Restricted sites [Protected Mode]" "Description"="This zone contains Web sites that could potentially damage your computer or data." "Icon"="inetcpl.cpl#00004481" "LowIcon"="inetcpl.cpl#005426" "CurrentLevel"=dword:00000000 "Flags"=dword:00000021 "1200"=dword:00000003 "1400"=dword:00000003 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\P3P] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\P3P\History] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Passport] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Passport\LowDAMap] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad] [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap] @="" "ProxyByPass"=dword:00000001 "IntranetName"=dword:00000001 "UNCAsIntranet"=dword:00000001 "AutoDetect"=dword:00000000 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains] @="" [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults] @="" "http"=dword:00000003 "https"=dword:00000003 "ftp"=dword:00000003 "file"=dword:00000003 "@ivt"=dword:00000001 "shell"=dword:00000000 "knownfolder"=dword:00000000 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges] @="" [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones] @="" "SelfHealCount"=dword:00000001 "SecuritySafe"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0] @="" "DisplayName"="Computer" "PMDisplayName"="Computer [Protected Mode]" "Description"="Your computer" "Icon"="shell32.dll#0016" "LowIcon"="inetcpl.cpl#005422" "CurrentLevel"=dword:00000000 "Flags"=dword:00000021 "1200"=dword:00000000 "1400"=dword:00000000 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1] @="" "DisplayName"="Local intranet" "PMDisplayName"="Local intranet [Protected Mode]" "Description"="This zone contains all Web sites that are on your organization's intranet." "Icon"="shell32.dll#0018" "LowIcon"="inetcpl.cpl#005423" "CurrentLevel"=dword:00000000 "Flags"=dword:000000db "1200"=dword:00000000 "1400"=dword:00000000 "2500"=dword:00000003 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2] @="" "DisplayName"="Trusted sites" "PMDisplayName"="Trusted sites [Protected Mode]" "Description"="This zone contains Web sites that you trust not to damage your computer or data." "Icon"="inetcpl.cpl#00004480" "LowIcon"="inetcpl.cpl#005424" "CurrentLevel"=dword:00011000 "Flags"=dword:00000047 "1200"=dword:00000000 "1400"=dword:00000000 "1001"=dword:00000001 "1004"=dword:00000003 "1201"=dword:00000003 "1206"=dword:00000003 "1207"=dword:00000000 "1208"=dword:00000000 "1209"=dword:00000003 "120A"=dword:00000003 "120B"=dword:00000000 "120C"=dword:00000000 "1402"=dword:00000000 "1405"=dword:00000000 "1406"=dword:00000003 "1407"=dword:00000001 "1408"=dword:00000000 "1409"=dword:00000000 "140A"=dword:00000000 "140C"=dword:00000000 "1601"=dword:00000000 "1604"=dword:00000000 "1605"=dword:00000000 "1606"=dword:00000000 "1607"=dword:00000003 "1608"=dword:00000000 "1609"=dword:00000001 "160A"=dword:00000000 "160B"=dword:00000000 "1802"=dword:00000000 "1803"=dword:00000000 "1804"=dword:00000001 "1809"=dword:00000000 "1812"=dword:00000000 "1A00"=dword:00020000 "1A02"=dword:00000000 "1A03"=dword:00000000 "1A04"=dword:00000003 "1A05"=dword:00000001 "1A06"=dword:00000000 "1A10"=dword:00000001 "1C00"=dword:00010000 "2000"=dword:00000000 "2001"=dword:00000000 "2004"=dword:00000000 "2005"=dword:00000000 "2007"=dword:00010000 "2100"=dword:00000000 "2101"=dword:00000000 "2102"=dword:00000003 "2103"=dword:00000000 "2104"=dword:00000000 "2105"=dword:00000000 "2106"=dword:00000000 "2107"=dword:00000000 "2108"=dword:00000003 "2200"=dword:00000003 "2201"=dword:00000003 "2300"=dword:00000001 "2301"=dword:00000000 "2302"=dword:00000003 "2400"=dword:00000000 "2401"=dword:00000000 "2402"=dword:00000000 "2600"=dword:00000000 "2700"=dword:00000003 "2701"=dword:00000000 "2702"=dword:00000000 "2703"=dword:00000000 "2704"=dword:00000000 "2708"=dword:00000003 "2709"=dword:00000003 "270B"=dword:00000000 "270C"=dword:00000003 "270D"=dword:00000000 "140D"=dword:00000000 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3] @="" "DisplayName"="Internet" "PMDisplayName"="Internet [Protected Mode]" "Description"="This zone contains all Web sites you haven't placed in other zones" "Icon"="inetcpl.cpl#001313" "LowIcon"="inetcpl.cpl#005425" "CurrentLevel"=dword:00011500 "Flags"=dword:00000001 "1200"=dword:00000000 "1400"=dword:00000000 "1001"=dword:00000001 "1004"=dword:00000003 "1201"=dword:00000003 "1206"=dword:00000003 "1207"=dword:00000003 "1208"=dword:00000003 "1209"=dword:00000003 "120A"=dword:00000003 "120B"=dword:00000003 "120C"=dword:00000003 "1402"=dword:00000000 "1405"=dword:00000000 "1406"=dword:00000003 "1407"=dword:00000001 "1408"=dword:00000003 "1409"=dword:00000000 "140A"=dword:00000000 "140C"=dword:00000003 "1601"=dword:00000000 "1604"=dword:00000000 "1605"=dword:00000000 "1606"=dword:00000000 "1607"=dword:00000003 "1608"=dword:00000000 "1609"=dword:00000001 "160A"=dword:00000003 "160B"=dword:00000000 "1802"=dword:00000000 "1803"=dword:00000000 "1804"=dword:00000001 "1809"=dword:00000000 "1812"=dword:00000001 "1A00"=dword:00020000 "1A02"=dword:00000000 "1A03"=dword:00000000 "1A04"=dword:00000003 "1A05"=dword:00000001 "1A06"=dword:00000000 "1A10"=dword:00000001 "1C00"=dword:00010000 "2000"=dword:00000000 "2001"=dword:00000000 "2004"=dword:00000000 "2005"=dword:00000003 "2007"=dword:00010000 "2100"=dword:00000000 "2101"=dword:00000000 "2102"=dword:00000003 "2103"=dword:00000003 "2104"=dword:00000003 "2105"=dword:00000003 "2106"=dword:00000000 "2107"=dword:00000003 "2200"=dword:00000003 "2201"=dword:00000003 "2300"=dword:00000001 "2301"=dword:00000000 "2302"=dword:00000003 "2400"=dword:00000003 "2401"=dword:00000000 "2402"=dword:00000003 "2600"=dword:00000000 "2700"=dword:00000000 "2701"=dword:00000000 "2702"=dword:00000000 "2703"=dword:00000003 "2704"=dword:00000000 "2708"=dword:00000003 "2709"=dword:00000003 "270B"=dword:00000003 "270C"=dword:00000000 "270D"=dword:00000003 "140D"=dword:00000000 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4] @="" "DisplayName"="Restricted sites" "PMDisplayName"="Restricted sites [Protected Mode]" "Description"="This zone contains Web sites that could potentially damage your computer or data." "Icon"="inetcpl.cpl#00004481" "LowIcon"="inetcpl.cpl#005426" "CurrentLevel"=dword:00012000 "Flags"=dword:00000003 "1200"=dword:00000003 "1400"=dword:00000003

Я получил эту ошибку в IE9 на странице, которая в конечном итоге открывает iFrame. Пока iFrame не был открыт, я мог использовать localStorage. Когда iFrame открывался и закрывался, я больше не мог использовать localStorage из-за этой ошибки. Чтобы это исправить, мне пришлось добавить этот код в Javascript, который был внутри iFrame, а также с использованием localStorage.

if (window.parent) {
    localStorage = window.parent.localStorage;
}

Получил эту ошибку в DHTMLX при открытии диалога и родительский идентификатор или текущий идентификатор окна не найден

        $(document).ready(function () {

            if (parent.dxWindowMngr == undefined) return;
            DhtmlxJS.GetCurrentWindow('wnManageConDlg').show();

});

Просто убедитесь, что вы отправляете правильный curr/ родительский идентификатор окна при открытии диалога

Объяснения очень актуальны в предыдущих ответах. Просто пытаюсь представить свой сценарий. Надеюсь, что это может помочь другим.

мы использовали:

<script> window.document.writeln(table) </script>

и вызов других функций в сценарии onchange события, но writeln полностью переопределяет HTML в IE, поскольку в chrome он ведет себя по-разному.

мы изменили это на:

<script> window.document.body.innerHTML = table;</script> 

Таким образом сохранился скрипт, который исправил проблему.

При обновлении iframe src я получаю эту ошибку.

Получил эту ошибку, получив доступ к событию (щелкнуть в моем случае) элемента в главном окне следующим образом (вызов основного / внешнего окна напрямую):

top.$("#settings").on("click",function(){
    $("#settings_modal").modal("show");
}); 

Я просто изменил его так, и он работает нормально (вызывая родителя родителя окна iframe):

$('#settings', window.parent.parent.document).on("click",function(){                    
   $("#settings_modal").modal("show");      
});

Мой iframe, содержащий модал, также находится внутри другого iframe.

Другие вопросы по тегам