Что вызывает ошибку "Невозможно выполнить код из освобожденного скрипта"
Я думал, что нашел решение некоторое время назад (см. Мой блог):
Если вы когда-нибудь получили ошибку 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.