UniversalViewer "Unable to load manifest" in iframe

Hello there,

I got a question on UniversalViewer.

Our lab use omeka-s as a digital archive platform,
so we upload image for item, and use UniversalViewer to show it on other website.

That url like this:
https://test-omekas-ssl.ccstw.nccu.edu.tw/item/1/uv
It work as well.

But when we put that url in an iframe (other site),
that alert “Unable to load manifest”.

That iframe like this:

<iframe src="https://test-omekas-ssl.ccstw.nccu.edu.tw/item/1/uv" width="700px" height="500px" frameborder="0" scrolling="no"> </iframe>

Because that iframe work on page of self omeka-s,
I think that maybe cause by some cors problems.

But I have already:

  • checked ‘Append CORS headers to web server response’ in IIIF Server Configure
  • added ‘Header set Access-Control-Allow-Origin “*”’ in apache2 config
    (so it work if just put that image url in other site iframe)

I also set ‘Force base of url’ in IIIF Server Configure as site url.
(https://test-omekas-ssl.ccstw.nccu.edu.tw/)
But still, it wasn’t working whether I set this configure or not.

Here is my verson of three modules:

  • IIIF Server 3.6.17
  • Image Server 3.6.15
  • Universal Viewer 3.6.7

And the older version do NOT get this error:

  • IIIF Server 3.6.6.7
  • Image Server 3.6.3.1
  • Universal Viewer 3.6.4.5

(But it got some zoom rate problem, that why I upgrade UV to 3.6.7.)
(We use Omeka-s 3.2.3 on many site, so I cant upgrade UV to later version.)

Is any other thing I should do?

Thank!

Additional image for “iframe work on page of self omeka-s”.

I found this post after getting the same result when trying to embed the UV into another site and trying the same things. @ay9010x did you ever resolve the issue? @Daniel_KM is there something that we are missing here?

Okay, so it looks like there is a config setting that allows embedding, you just need to set {“embedded”: “true”} in your installation’s global settings for the UV.

Hi IOPNdev, I have the same issue but I’m a bit confused with

you just need to set {“embedded”: “true”} in your installation’s global settings for the UV.

I guess you have to add this setting in the Players section of the Global settings page. Could you please indicate where you put it in the config structure?

Yeah, from the admin interface, under the Admin click “Settings”. From there if you scroll to the bottom and there should be a section called Player where the Universal Viewer configuration options are located

If you are running v4, enter
{"embedded": "true"}
as the value for “Universal viewer: Config as json for v4” and hit save.

Then, go ahead and test your iframe embed in another site and it should work.

1 Like

Hello there, I must apologize for the late response.

Past two years, our lab still use the old version of Universal Viewer.
The following version work on my require.(Maybe this old version not use js cross-origin frame?)

  • Omeka-s 3.2.2
  • IIIF Server 3.6.3.0
  • Image Server 3.6.3.2
  • Universal Viewer 3.6.3.2

@IOPNdev for your solution:
Our lab only used that Omeka-s as media storage in this project.
We don’t create any site on it, so there isn’t site admin tab on our Omeka-s.
(Even after create a new enpty site and applying {"embedded": "true"} in configuration of Players. Universal Viewer still won’t work in my iframe)

I also created a work item on git repo of Omeka-S-module-UniversalViewer.
Early this year(2/20), @Daniel_KM replied that problem fixed in Iiif Server 3.6.28.


(It seems this problem course by Iiif Server, not Universal Viewer.)

I finally have some free time this month, so I’ve started testing newer modules.
I’m using the following combination of versions:

  1. latest version (2026/06/10)
  • Omeka-s 4.2.0
  • Common 3.4.86
  • IIIF Server 3.6.32
  • Image Server 3.6.25
  • Universal Viewer 3.6.15-4.2.1
  1. version on 2026/02/20
  • Omeka-s 4.2.0
  • Common 3.4.79
  • IIIF Server 3.6.28
  • Image Server 3.6.22
  • Universal Viewer 3.6.12-4.2.1

But it still not work:

  • browser shows Unable to load manifest
  • console of browser shows SecurityError: Failed to read a named property 'document' from 'Window': Blocked a frame with origin "https://test-omekas-ssl.ccstw.nccu.edu.tw" from accessing a cross-origin frame.

Here is my testing page:

I am still seeking the solution of my solution.