Comments (7)
Do those pages (101 and 102) also add the event listener for navigation? After page load, the child's JS context will be blown away, and the original listener won't be valid anymore.
from pym.js.
Yes, the pym child code is identical on all pages (it's actually just one page called with different parameters). I also setup a simpler test case with 3 static pages with distinct names (foo1.html, foo2.html, etc.) and get the same results. Adding debugging to the child shows nothing on the subsequent hits.
This is in the client now for testing:
console.log('recvd msg');
console.log(url);
edit: actually here's a public test case - very simple example, not even cross-domain:
https://sporklab.com/pym/
from pym.js.
So it looks to me like what's happening is that your new child doesn't have an ID set, and as a result it's not matching the message regex that Pym uses to filter its own messages out of everything that can come through window.onmessage
. Try to set a new ID manually when creating the child, so that it stays consistent, and I think it'll work. Unfortunately, due to the way that Pym constructs itself (as a closure, not as a class or prototype), this can be tough to debug. Sorry about that!
Edit to add: The initial message regex is /^pymxPYMxcw_quotegenxPYMx(\S+)xPYMx(.*)$/
, and your second window has a regex of /^pymxPYMxundefinedxPYMx(\S+)xPYMx(.*)$/
. I think configuring your child with an ID of "cw_quotegen" during initialization will work, but I haven't tried that.
from pym.js.
You may also want to investigate using Sidechain, our successor to Pym, which uses JSON sentinel values instead of regex matching and probably would be easier to get working.
from pym.js.
Are you saying to create the child like this?
var pymChild = new pym.Child('cw_quotegen');
from pym.js.
I believe it's an object param, so more like var pymChild = new pym.Child({ id: "cw_quotegen" })
.
from pym.js.
That did it! Thanks. Sidechain looks interesting, but a bit too complex for our one-off use.
Now I just have to wait for someone in another timezone in Norway to update the client code on the real page. :)
from pym.js.
Related Issues (20)
- Please add anchor tags to headers on http://blog.apps.npr.org/pym.js/ HOT 2
- AMP Compatibility HOT 9
- Pym Chile does height problem HOT 3
- Optional Fixed Size? HOT 3
- Size of iframe is not increasing with dynamic content HOT 6
- Scrolling attribute cannot be reset in IE11 HOT 5
- would you accept a PR for throttling height postMessage? HOT 4
- Is there a blog post or documentation I can use to justify pym's usage? HOT 2
- iframe srcdoc support? HOT 1
- base64 src for iframe HOT 1
- Still active? HOT 1
- Cannot read property 'offsetHeight' of undefined HOT 3
- Docs: Don't show a useless use of var HOT 5
- Can not horizontally scroll wide iframes HOT 1
- Wrong height of child found from body element. Please help. Why? HOT 2
- Cannot read properties of undefined (reading 'sendHeight') HOT 2
- Feature Request: Ability to take params from hash instead of query string to optimize CDN caching HOT 2
- Allow web-share attribute on the iframe HOT 1
- Adding "allow" attribute to iframe tag HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pym.js.